On 9/1/25 14:53, Alex Bennée wrote:
The function has quite a number of exit cases so lets try and clean
things up with g_autofree. As the fdt hasn't be allocated yet we can
return directly from the fail point.

Signed-off-by: Alex Bennée <[email protected]>
---
  hw/arm/boot.c | 8 +++-----
  1 file changed, 3 insertions(+), 5 deletions(-)

Reviewed-by: Richard Henderson <[email protected]>

r~


diff --git a/hw/arm/boot.c b/hw/arm/boot.c
index d391cd01bb1..56fd13b9f7c 100644
--- a/hw/arm/boot.c
+++ b/hw/arm/boot.c
@@ -528,20 +528,18 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_info 
*binfo,
      Error *err = NULL;
if (binfo->dtb_filename) {
-        char *filename;
-        filename = qemu_find_file(QEMU_FILE_TYPE_DTB, binfo->dtb_filename);
+        g_autofree char *filename = qemu_find_file(QEMU_FILE_TYPE_DTB,
+                                                   binfo->dtb_filename);
          if (!filename) {
              fprintf(stderr, "Couldn't open dtb file %s\n", 
binfo->dtb_filename);
-            goto fail;
+            return -1;
          }
fdt = load_device_tree(filename, &size);
          if (!fdt) {
              fprintf(stderr, "Couldn't open dtb file %s\n", filename);
-            g_free(filename);
              goto fail;
          }
-        g_free(filename);
      } else {
          fdt = binfo->get_dtb(binfo, &size);
          if (!fdt) {


Reply via email to