On Wed, Jul 04, 2012 at 11:05:40AM +0200, Peter Krempa wrote: > vshCalloc function uses xalloc_oversized macro that can't take 0 as it's > second argument. If vshCalloc is called with size 0, virsh ends with a > floating point exception. > > This patch changes vshCalloc to return NULL if no memory is requested. > --- > tools/virsh.c | 3 +++ > 1 files changed, 3 insertions(+), 0 deletions(-) > > diff --git a/tools/virsh.c b/tools/virsh.c > index 53d1825..d3d5c6a 100644 > --- a/tools/virsh.c > +++ b/tools/virsh.c > @@ -460,6 +460,9 @@ _vshCalloc(vshControl *ctl, size_t nmemb, size_t size, const char *filename, int > { > char *x; > > + if (!size) > + return NULL; > + > if (!xalloc_oversized(nmemb, size) && IMHO this div-by-zero problem is a bug in the xalloc_oversized macro & we should fix it there. The scenario seen here in virsh is a fairly common and so div-by-zero could affect any other usage of that macro Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list