From 71719680968c86a09ad0ba76339447f18996610b Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Tue, 25 Mar 2025 12:44:13 +0100 Subject: [PATCH] fdisk: fix possible memory leak Signed-off-by: Karel Zak --- disk-utils/fdisk.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/disk-utils/fdisk.c b/disk-utils/fdisk.c index 962eb5ae7..7c459c734 100644 --- a/disk-utils/fdisk.c +++ b/disk-utils/fdisk.c @@ -652,27 +652,24 @@ static int strtosize_sectors(const char *str, unsigned long sector_size, size_t len = strlen(str); int insec = 0; int rc; + char *buf = NULL; if (!len) return 0; if (str[len - 1] == 'S' || str[len - 1] == 's') { insec = 1; - str = strndup(str, len - 1); /* strip trailing 's' */ + str = buf = strndup(str, len - 1); /* strip trailing 's' */ if (!str) return -errno; } rc = strtosize(str, res); - if (rc) - return rc; - - if (insec) { + if (rc == 0 && insec) *res *= sector_size; - free((void *)str); - } - return 0; + free(buf); + return rc; } void resize_partition(struct fdisk_context *cxt) -- 2.47.2