summaryrefslogtreecommitdiffstats
path: root/libfdisk/src/dos.c
diff options
context:
space:
mode:
authorVaclav Dolezal2017-08-14 12:57:52 +0200
committerKarel Zak2017-08-24 11:21:59 +0200
commit5cebb2ab33e4b5a802e8d711b9001c9d717ec9c3 (patch)
treed393e6adc22a1cf614061cbdb009e2d96b5e19ca /libfdisk/src/dos.c
parentlibfdisk: improve alignment debug mesagges (diff)
downloadkernel-qcow2-util-linux-5cebb2ab33e4b5a802e8d711b9001c9d717ec9c3.tar.gz
kernel-qcow2-util-linux-5cebb2ab33e4b5a802e8d711b9001c9d717ec9c3.tar.xz
kernel-qcow2-util-linux-5cebb2ab33e4b5a802e8d711b9001c9d717ec9c3.zip
libfdisk: fix two potential memory errors.
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>
Diffstat (limited to 'libfdisk/src/dos.c')
-rw-r--r--libfdisk/src/dos.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libfdisk/src/dos.c b/libfdisk/src/dos.c
index 1e0480ea1..9759ce2e0 100644
--- a/libfdisk/src/dos.c
+++ b/libfdisk/src/dos.c
@@ -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);