[Libguestfs] [PATCH 1/3] inspection: Add func for merging fs inspections

Richard W.M. Jones rjones at redhat.com
Tue Jun 2 14:14:29 UTC 2015


On Tue, Jun 02, 2015 at 03:08:44PM +0100, Richard W.M. Jones wrote:
> On Fri, May 29, 2015 at 12:24:38PM +0300, Nikos Skalkotos wrote:
> > +      /* Merge the src mappings to dst */
> > +      mappings = realloc (dst->drive_mappings, (n + 1) * sizeof (char *));
> > +      if (mappings == NULL) {
> > +        perrorf (g, "realloc");
> > +        return -1;
> > +      }
> [...]
> > +    n = dst->nr_fstab + src->nr_fstab;
> > +    fstab = realloc (dst->fstab, n * sizeof (struct inspect_fstab_entry));
> > +    if (fstab == NULL) {
> > +      perrorf (g, "realloc");
> > +      return -1;
> > +    }
> 
> These both leak the original pointers on failure, and also leave the
> dst / src structures in a half-merged state.
> 
> Since allocation failures are unlikely to be recoverable, just call
> `safe_realloc (g, ...)' instead.  It calls the per-handle out of
> memory handler (guestfs_set_out_of_memory_handler) on failure.

And in case that's not clear, you can just ignore the error case when
using safe_realloc.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v




More information about the Libguestfs mailing list