]> 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>
Wed, 20 Sep 2017 12:21:43 +0000 (14: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 e5deedf2c7e79cc7518da284a3b0c8e561341dbd..0c8478e0cc30b110c7dcf9be937ceb0d25081fca 100644 (file)
@@ -1720,10 +1720,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 efb1faf37abb6d8674e1283d50f133ba161c65b3..922648cd5cbc4b62a25052d7518392409d640fad 100644 (file)
@@ -2290,6 +2290,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"));