summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-11-10 13:41:41 +0100
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-11-10 15:29:53 +0100
commit1538c553302dae1df9088ec302a5b2fb5a15174f (patch)
treed8d27feb53f4d2fe56d9611a7723d283a90ca124
parent7386aabf3628379df10612bed7ecb7ab4163cdcf (diff)
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 <david.oberhollenzer@sigma-star.at>
-rw-r--r--ubifs-utils/mkfs.ubifs/mkfs.ubifs.c2
1 files changed, 2 insertions, 0 deletions
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)