]> 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>
Tue, 9 Sep 2025 09:55:38 +0000 (11:55 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
(cherry picked from commit 02955d9434396df4019132351d8264b74811dc3f)

misc-utils/lsblk.c

index 3c14ca26a03371c7102631e2f0daf07add2f9cf0..6940de08885ea47a5ef26b6e4e8a3272156ec020 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;