From 8f4d17baa08dfe574a261be20884d20cd6547ae9 Mon Sep 17 00:00:00 2001 From: Vaclav Dolezal Date: Mon, 14 Aug 2017 12:57:52 +0200 Subject: [PATCH] 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 Signed-off-by: Karel Zak --- libfdisk/src/dos.c | 5 +++-- libfdisk/src/gpt.c | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/libfdisk/src/dos.c b/libfdisk/src/dos.c index e5deedf2c7..0c8478e0cc 100644 --- a/libfdisk/src/dos.c +++ b/libfdisk/src/dos.c @@ -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); diff --git a/libfdisk/src/gpt.c b/libfdisk/src/gpt.c index efb1faf37a..922648cd5c 100644 --- a/libfdisk/src/gpt.c +++ b/libfdisk/src/gpt.c @@ -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")); -- 2.47.3