diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-11-10 13:41:41 +0100 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-11-10 15:29:53 +0100 |
commit | 1538c553302dae1df9088ec302a5b2fb5a15174f (patch) | |
tree | d8d27feb53f4d2fe56d9611a7723d283a90ca124 /ubifs-utils | |
parent | 7386aabf3628379df10612bed7ecb7ab4163cdcf (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>
Diffstat (limited to 'ubifs-utils')
-rw-r--r-- | ubifs-utils/mkfs.ubifs/mkfs.ubifs.c | 2 |
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) |