[Libguestfs] [PATCH 1/2] Check for failures in memory allocations
Richard W.M. Jones
rjones at redhat.com
Tue Jul 29 18:25:19 UTC 2014
On Tue, Jul 29, 2014 at 06:47:40PM +0200, Pino Toscano wrote:
> Make sure to report the failure (usually exiting) in case of memory
> allocation failures.
> ---
> src/ext2fs-c.c | 4 ++++
> src/init.c | 13 +++++++++++++
> 2 files changed, 17 insertions(+)
>
> diff --git a/src/ext2fs-c.c b/src/ext2fs-c.c
> index a265ad9..99f4d3c 100644
> --- a/src/ext2fs-c.c
> +++ b/src/ext2fs-c.c
> @@ -615,6 +615,10 @@ ext2_copy_file (ext2_filsys fs, const char *src, const char *dest)
> if (fp == NULL)
> goto cont;
> new_dirname = malloc (PATH_MAX+1);
> + if (new_dirname == NULL) {
> + pclose (fp);
> + goto cont;
> + }
> if (fgets (new_dirname, PATH_MAX, fp) == NULL) {
> pclose (fp);
> goto cont;
> diff --git a/src/init.c b/src/init.c
> index 73efdff..6b3dc7e 100644
> --- a/src/init.c
> +++ b/src/init.c
> @@ -307,6 +307,11 @@ insmod (const char *filename)
> errno = 0;
> size = 0;
>
> + if (!buf) {
> + perror("malloc");
> + exit (EXIT_FAILURE);
> + }
> +
> #ifdef HAVE_LZMA_STATIC
> if (ends_with(filename, ".xz")) {
> lzma_stream strm = LZMA_STREAM_INIT;
> @@ -350,6 +355,10 @@ insmod (const char *filename)
> const size_t num = tmpsize - strm.avail_out;
> if (num > capacity) {
> buf = (char*) realloc (buf, size*2);
> + if (!buf) {
> + perror("realloc");
> + exit (EXIT_FAILURE);
> + }
> capacity = size;
> }
> memcpy (buf+size, tmp_out, num);
> @@ -380,6 +389,10 @@ insmod (const char *filename)
> while ((num = gzread (gzfp, tmp, tmpsize)) > 0) {
> if (num > capacity) {
> buf = (char*) realloc (buf, size*2);
> + if (!buf) {
> + perror("realloc");
> + exit (EXIT_FAILURE);
> + }
> capacity = size;
> }
> memcpy (buf+size, tmp, num);
ACK.
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html
More information about the Libguestfs
mailing list