]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
lsblk: fix possible use-after-free
authorKarel Zak <kzak@redhat.com>
Wed, 2 Jul 2025 09:48:22 +0000 (11:48 +0200)
committerKarel Zak <kzak@redhat.com>
Wed, 2 Jul 2025 09:48:22 +0000 (11:48 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
misc-utils/lsblk.c

index 5107f99ed7282359cc974574eba8561be0f3cc1e..06a206cb926d740e81de70671ef66f84e27003d3 100644 (file)
@@ -483,9 +483,12 @@ static char *get_type(struct lsblk_device *dev)
                char *md_level = NULL;
 
                ul_path_read_string(dev->sysfs, &md_level, "md/level");
-               res = (md_level && *md_level) ? md_level : xstrdup("md");
-               free(md_level);
-
+               if (md_level && *md_level)
+                       res = md_level;
+               else {
+                       free(md_level);         /* may be unused empty string */
+                       res = xstrdup("md");
+               }
        } else {
                const char *type = NULL;
                int x = 0;