]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
cfdisk: fix memory leak and possible NULL dereference [gcc-analyzer]
authorKarel Zak <kzak@redhat.com>
Tue, 25 Mar 2025 11:14:14 +0000 (12:14 +0100)
committerKarel Zak <kzak@redhat.com>
Thu, 3 Apr 2025 12:12:27 +0000 (14:12 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
disk-utils/cfdisk.c

index d0bb57aaf15b1a3d2d02d3596c6633799c2a246d..e8a8b959a0f95ef7c4e5aa3d14aeec9f91aedf0b 100644 (file)
@@ -947,6 +947,7 @@ static void menu_set_title(struct cfdisk_menu *m, const char *title)
                        m->width = len + MENU_TITLE_PADDING;
                str = xstrdup(title);
        }
+       free(m->title);
        m->title = str;
 }
 
@@ -2173,7 +2174,8 @@ static int ui_create_label(struct cfdisk *cf)
        nitems = fdisk_get_nlabels(cf->cxt);
        cm = xcalloc(nitems + 1, sizeof(struct cfdisk_menuitem));
 
-       while (fdisk_next_label(cf->cxt, &lb) == 0) {
+       while (fdisk_next_label(cf->cxt, &lb) == 0 && i < nitems) {
+
                if (fdisk_label_is_disabled(lb) ||
                    fdisk_label_get_type(lb) == FDISK_DISKLABEL_BSD)
                        continue;