diff mbox

block/qcow.c: Fix memory leak in qcow_create()

Message ID 1496670954-664-1-git-send-email-peter.maydell@linaro.org
State New
Headers show

Commit Message

Peter Maydell June 5, 2017, 1:55 p.m. UTC
Coverity points out that the code path in qcow_create() for
the magic "fat:" backing file name leaks the memory used to
store the filename (CID 1307771). Free the memory before
we overwrite the pointer.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 block/qcow.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Eric Blake June 5, 2017, 2:05 p.m. UTC | #1
On 06/05/2017 08:55 AM, Peter Maydell wrote:
> Coverity points out that the code path in qcow_create() for
> the magic "fat:" backing file name leaks the memory used to
> store the filename (CID 1307771). Free the memory before
> we overwrite the pointer.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
>  block/qcow.c | 1 +
>  1 file changed, 1 insertion(+)

Reviewed-by: Eric Blake <eblake@redhat.com>

> 
> diff --git a/block/qcow.c b/block/qcow.c
> index 95ab123..7bd94dc 100644
> --- a/block/qcow.c
> +++ b/block/qcow.c
> @@ -852,6 +852,7 @@ static int qcow_create(const char *filename, QemuOpts *opts, Error **errp)
>              header_size += backing_filename_len;
>          } else {
>              /* special backing file for vvfat */
> +            g_free(backing_file);
>              backing_file = NULL;
>          }
>          header.cluster_bits = 9; /* 512 byte cluster to avoid copying
>
Philippe Mathieu-Daudé June 5, 2017, 2:19 p.m. UTC | #2
On 06/05/2017 10:55 AM, Peter Maydell wrote:
> Coverity points out that the code path in qcow_create() for
> the magic "fat:" backing file name leaks the memory used to
> store the filename (CID 1307771). Free the memory before
> we overwrite the pointer.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> ---
>  block/qcow.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/block/qcow.c b/block/qcow.c
> index 95ab123..7bd94dc 100644
> --- a/block/qcow.c
> +++ b/block/qcow.c
> @@ -852,6 +852,7 @@ static int qcow_create(const char *filename, QemuOpts *opts, Error **errp)
>              header_size += backing_filename_len;
>          } else {
>              /* special backing file for vvfat */
> +            g_free(backing_file);
>              backing_file = NULL;
>          }
>          header.cluster_bits = 9; /* 512 byte cluster to avoid copying
>
Kevin Wolf June 6, 2017, 11:13 a.m. UTC | #3
Am 05.06.2017 um 15:55 hat Peter Maydell geschrieben:
> Coverity points out that the code path in qcow_create() for
> the magic "fat:" backing file name leaks the memory used to
> store the filename (CID 1307771). Free the memory before
> we overwrite the pointer.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Thanks, applied to the block branch.

Kevin
diff mbox

Patch

diff --git a/block/qcow.c b/block/qcow.c
index 95ab123..7bd94dc 100644
--- a/block/qcow.c
+++ b/block/qcow.c
@@ -852,6 +852,7 @@  static int qcow_create(const char *filename, QemuOpts *opts, Error **errp)
             header_size += backing_filename_len;
         } else {
             /* special backing file for vvfat */
+            g_free(backing_file);
             backing_file = NULL;
         }
         header.cluster_bits = 9; /* 512 byte cluster to avoid copying