[Libvir] [PATCH 3/6] Inactive domain support: python bindings

Daniel P. Berrange berrange at redhat.com
Wed Nov 15 16:29:49 UTC 2006


On Wed, Nov 15, 2006 at 04:57:23AM -0500, Daniel Veillard wrote:
> On Wed, Nov 15, 2006 at 02:20:33AM +0000, Daniel P. Berrange wrote:
> > The attached patch implements the virListDefinedDomains method in the python
> > bindings, since it wasn't being automatically generated by the generator.py
> > script. 
> 
> > +     c_retval = virConnectNumOfDefinedDomains(conn);
> > +     if (c_retval < 0) {
> > +         Py_INCREF(Py_None);
> > + 	return (Py_None);
> > +     }
> > +     
> > +     if (c_retval) {
> > +         names = malloc(sizeof(char *) * c_retval);
> 
>   Miss NULL return check here I think.

Good catch!

> 
> > +         c_retval = virConnectListDefinedDomains(conn, names, c_retval);
> > +         if (c_retval < 0) {
> > +             free(names);
> > +             Py_INCREF(Py_None);
> > +             return(Py_None);
> > +         }
> > +     }
> > +     py_retval = PyList_New(c_retval);
> 
>   the paranoid in me would feel safer if the for loop was protected by
> a test for names not being NULL even if I agree it's not strictly needed :-)
> 
> > +     for (i = 0;i < c_retval;i++) {
> > +         PyList_SetItem(py_retval, i, libvirt_constcharPtrWrap(names[i]));
> > + 	free(names[i]);
> > +     }


Yeah, worth doing the extra check - never know when someone might do a
'trivial' code rearrangement & break my current asusmption.

Dan.
-- 
|=- Red Hat, Engineering, Emerging Technologies, Boston.  +1 978 392 2496 -=|
|=-           Perl modules: http://search.cpan.org/~danberr/              -=|
|=-               Projects: http://freshmeat.net/~danielpb/               -=|
|=-  GnuPG: 7D3B9505   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505  -=| 




More information about the libvir-list mailing list