From: David Oberhollenzer Date: Sun, 10 Nov 2019 12:41:41 +0000 (+0100) Subject: mkfs.ubifs: don't leak copied command line arguments X-Git-Tag: v2.1.2~29 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=1538c553302dae1df9088ec302a5b2fb5a15174f;p=mtd-utils.git mkfs.ubifs: don't leak copied command line arguments For some command line flags, the argument string is copied. Simply writing over the buffer leads to a resource leak if the same flag is specified on the command line more than once. This patch adds a free() call to the old buffer before overwriting it with the new copy. Signed-off-by: David Oberhollenzer --- diff --git a/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c b/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c index bf1290f..ea0afee 100644 --- a/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c +++ b/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c @@ -580,6 +580,7 @@ static int get_options(int argc, char**argv) switch (opt) { case 'r': case 'd': + free(root); root_len = strlen(optarg); root = xmalloc(root_len + 2); @@ -726,6 +727,7 @@ static int get_options(int argc, char**argv) do_create_inum_attr = 1; break; case 's': + free(context); context_len = strlen(optarg); context = (char *) xmalloc(context_len + 1); if (!context)