summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2018-04-04 11:13:52 +0100
committerPeter Maydell <peter.maydell@linaro.org>2018-04-04 11:13:52 +0100
commit094b62cd9cd9f137cf75b4931e41b8953fb4ccd9 (patch)
tree75e5f3020d735f64d780bc78f99fd6f2c43bcf14
parent71ad102baa599c3bdeee1f6d0913bbd3e0f08ee3 (diff)
parent5d7bc72a4336f922ba42bab545529051c706ac4b (diff)
downloadfocaccia-qemu-094b62cd9cd9f137cf75b4931e41b8953fb4ccd9.tar.gz
focaccia-qemu-094b62cd9cd9f137cf75b4931e41b8953fb4ccd9.zip
Merge remote-tracking branch 'remotes/ehabkost/tags/x86-next-pull-request' into staging
Fix memory leaks when using object_property_get_str()

# gpg: Signature made Tue 03 Apr 2018 15:00:10 BST
# gpg:                using RSA key 2807936F984DC5A6
# gpg: Good signature from "Eduardo Habkost <ehabkost@redhat.com>"
# Primary key fingerprint: 5A32 2FD5 ABC4 D3DB ACCF  D1AA 2807 936F 984D C5A6

* remotes/ehabkost/tags/x86-next-pull-request:
  sev/i386: fix memory leak in sev_guest_init()
  exec: fix memory leak in find_max_supported_pagesize()

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r--exec.c1
-rw-r--r--target/i386/sev.c4
2 files changed, 4 insertions, 1 deletions
diff --git a/exec.c b/exec.c
index c09bd93df3..02b1efebb7 100644
--- a/exec.c
+++ b/exec.c
@@ -1495,6 +1495,7 @@ static int find_max_supported_pagesize(Object *obj, void *opaque)
         mem_path = object_property_get_str(obj, "mem-path", NULL);
         if (mem_path) {
             long hpsize = qemu_mempath_getpagesize(mem_path);
+            g_free(mem_path);
             if (hpsize < *hpsize_min) {
                 *hpsize_min = hpsize;
             }
diff --git a/target/i386/sev.c b/target/i386/sev.c
index 019d84cef2..c01167143f 100644
--- a/target/i386/sev.c
+++ b/target/i386/sev.c
@@ -748,9 +748,11 @@ sev_guest_init(const char *id)
     if (s->sev_fd < 0) {
         error_report("%s: Failed to open %s '%s'", __func__,
                      devname, strerror(errno));
-        goto err;
     }
     g_free(devname);
+    if (s->sev_fd < 0) {
+        goto err;
+    }
 
     ret = sev_platform_ioctl(s->sev_fd, SEV_PLATFORM_STATUS, &status,
                              &fw_error);