diff options
author | Tong Ho <tong.ho@xilinx.com> | 2021-10-15 13:35:30 -0700 |
---|---|---|
committer | Laurent Vivier <laurent@vivier.eu> | 2021-10-23 18:50:33 +0200 |
commit | c4e4d0d92b37430b74be3e9dab6066d2f4b69a95 (patch) | |
tree | 88268d8b8e367b64774d52e7788b1a98d8bed5e7 /hw/nvram | |
parent | f18d403f15b92ded56362703067eb67161cfe2a9 (diff) | |
download | qemu-c4e4d0d92b37430b74be3e9dab6066d2f4b69a95.zip qemu-c4e4d0d92b37430b74be3e9dab6066d2f4b69a95.tar.gz qemu-c4e4d0d92b37430b74be3e9dab6066d2f4b69a95.tar.bz2 |
hw/nvram: Fix Memory Leak in Xilinx eFuse QOM
Signed-off-by: Tong Ho <tong.ho@xilinx.com>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Reviewed-by: Francisco Iglesias <frasse.iglesias@gmail.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20211015203532.2463705-2-tong.ho@xilinx.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Diffstat (limited to 'hw/nvram')
-rw-r--r-- | hw/nvram/xlnx-efuse.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/hw/nvram/xlnx-efuse.c b/hw/nvram/xlnx-efuse.c index ee1caab..a0fd77b 100644 --- a/hw/nvram/xlnx-efuse.c +++ b/hw/nvram/xlnx-efuse.c @@ -144,10 +144,11 @@ static bool efuse_ro_bits_find(XlnxEFuse *s, uint32_t k) bool xlnx_efuse_set_bit(XlnxEFuse *s, unsigned int bit) { if (efuse_ro_bits_find(s, bit)) { + g_autofree char *path = object_get_canonical_path(OBJECT(s)); + qemu_log_mask(LOG_GUEST_ERROR, "%s: WARN: " "Ignored setting of readonly efuse bit<%u,%u>!\n", - object_get_canonical_path(OBJECT(s)), - (bit / 32), (bit % 32)); + path, (bit / 32), (bit % 32)); return false; } @@ -202,9 +203,11 @@ static void efuse_realize(DeviceState *dev, Error **errp) efuse_ro_bits_sort(s); if ((s->efuse_size % 32) != 0) { + g_autofree char *path = object_get_canonical_path(OBJECT(s)); + error_setg(errp, "%s.efuse-size: %u: property value not multiple of 32.", - object_get_canonical_path(OBJECT(dev)), s->efuse_size); + path, s->efuse_size); return; } |