]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libfdisk: fix two potential memory errors.
authorVaclav Dolezal <vdolezal@redhat.com>
Mon, 14 Aug 2017 10:57:52 +0000 (12:57 +0200)
committerKarel Zak <kzak@redhat.com>
Thu, 24 Aug 2017 09:21:59 +0000 (11:21 +0200)
Fixes one leak and one unchecked allocation error.

[kzak@redhat.com: - don't call fdisk_ask_menu_get_result()
                    after failed fdisk_do_ask()]

Signed-off-by: Vaclav Dolezal <vdolezal@redhat.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
libfdisk/src/dos.c
libfdisk/src/gpt.c

index 1e0480ea1f36e7c2620b42e5eac04e5edb582bd8..9759ce2e0abac54781a1659fed028b0e589fb32f 100644 (file)
@@ -1737,10 +1737,11 @@ static int dos_add_partition(struct fdisk_context *cxt,
                        fdisk_ask_menu_add_item(ask, 'l', _("logical"), _("numbered from 5"));
 
                rc = fdisk_do_ask(cxt, ask);
+               if (!rc)
+                       fdisk_ask_menu_get_result(ask, &c);
+               fdisk_unref_ask(ask);
                if (rc)
                        return rc;
-               fdisk_ask_menu_get_result(ask, &c);
-               fdisk_unref_ask(ask);
 
                if (c == 'p') {
                        rc = get_partition_unused_primary(cxt, pa, &res);
index 73590156e7892f8a8a79bdc717705bb57d030e48..3a9d51da1efc26dece1e04a4c53ec59f4d4059e3 100644 (file)
@@ -2302,6 +2302,8 @@ static int gpt_add_partition(
                                ask = fdisk_new_ask();
                        else
                                fdisk_reset_ask(ask);
+                       if (!ask)
+                               return -ENOMEM;
 
                        /* First sector */
                        fdisk_ask_set_query(ask, _("First sector"));