diff options
author | Vaclav Dolezal | 2017-08-14 12:57:52 +0200 |
---|---|---|
committer | Karel Zak | 2017-08-24 11:21:59 +0200 |
commit | 5cebb2ab33e4b5a802e8d711b9001c9d717ec9c3 (patch) | |
tree | d393e6adc22a1cf614061cbdb009e2d96b5e19ca /libfdisk | |
parent | libfdisk: improve alignment debug mesagges (diff) | |
download | kernel-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')
-rw-r--r-- | libfdisk/src/dos.c | 5 | ||||
-rw-r--r-- | 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 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); diff --git a/libfdisk/src/gpt.c b/libfdisk/src/gpt.c index 73590156e..3a9d51da1 100644 --- a/libfdisk/src/gpt.c +++ b/libfdisk/src/gpt.c @@ -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")); |