From: Karel Zak Date: Tue, 25 Mar 2025 11:44:13 +0000 (+0100) Subject: fdisk: fix possible memory leak X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=71719680968c86a09ad0ba76339447f18996610b;p=thirdparty%2Futil-linux.git fdisk: fix possible memory leak Signed-off-by: Karel Zak --- 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)