[Libguestfs] [PATCH nbdkit] plugins/python: Fix extents() count format string

Richard W.M. Jones rjones at redhat.com
Sun Dec 19 10:53:54 UTC 2021


On Sun, Dec 19, 2021 at 10:27:48AM +0000, Richard W.M. Jones wrote:
> On Sun, Dec 19, 2021 at 09:09:39AM +0200, Nir Soffer wrote:
> > The plugin used "i" (int32) instead of "I" (uint32) for the count, so
> > when the client asks for 4294966784 bytes, the python plugin got -512.
> > 
> >     nbdkit: python.0: debug: python: extents count=4294966784 offset=0 req_one=0
> >     ...
> >     nbdkit: python.0: debug: extents: count=-512 offset=0 flags=0
> > 
> > With this fix I can get extents from rhv-upload-plugin using nbdinfo.
> > ---
> >  plugins/python/plugin.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/plugins/python/plugin.c b/plugins/python/plugin.c
> > index f85512b4..366619f9 100644
> > --- a/plugins/python/plugin.c
> > +++ b/plugins/python/plugin.c
> > @@ -957,21 +957,21 @@ py_extents (void *handle, uint32_t count, uint64_t offset,
> >    ACQUIRE_PYTHON_GIL_FOR_CURRENT_SCOPE;
> >    struct handle *h = handle;
> >    PyObject *fn;
> >    PyObject *r;
> >    PyObject *iter, *t;
> >    size_t size;
> >  
> >    if (callback_defined ("extents", &fn)) {
> >      PyErr_Clear ();
> >  
> > -    r = PyObject_CallFunction (fn, "OiLI", h->py_h, count, offset, flags);
> > +    r = PyObject_CallFunction (fn, "OILI", h->py_h, count, offset, flags);
> >      Py_DECREF (fn);
> >      if (check_python_failure ("extents") == -1)
> >        return -1;
> >  
> >      iter = PyObject_GetIter (r);
> >      if (iter == NULL) {
> >        nbdkit_error ("extents method did not return "
> >                      "something which is iterable");
> >        Py_DECREF (r);
> >        return -1;
> 
> ACKed and pushed, thanks.
> 
> I think we're going to need this one in RHEL ...

Included in nbdkit-1.28.3-3.el9

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW




More information about the Libguestfs mailing list