diff options
| author | 2018-07-24 14:27:05 +0200 | |
|---|---|---|
| committer | 2018-07-24 14:36:27 +0200 | |
| commit | e46d17cadb3dd1259b0ca78dc80fc06fbf10c516 (patch) | |
| tree | 12a64bb4f792b50e97eb12e1284ccf3a5d4c5f16 | |
| parent | 6358b721c2f4dfea1d8f9f84346da30b458ec441 (diff) | |
| download | libimobiledevice-e46d17cadb3dd1259b0ca78dc80fc06fbf10c516.tar.gz libimobiledevice-e46d17cadb3dd1259b0ca78dc80fc06fbf10c516.tar.bz2 | |
ideviceimagemounter: Fix possible memleak in option parsing
If some arguments are passed multiple times, don't leak the memory used
for the value of the first arguments passed.
| -rw-r--r-- | tools/ideviceimagemounter.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/tools/ideviceimagemounter.c b/tools/ideviceimagemounter.c index ad3222a..d56fa0c 100644 --- a/tools/ideviceimagemounter.c +++ b/tools/ideviceimagemounter.c | |||
| @@ -104,12 +104,16 @@ static void parse_opts(int argc, char **argv) | |||
| 104 | print_usage(argc, argv); | 104 | print_usage(argc, argv); |
| 105 | exit(2); | 105 | exit(2); |
| 106 | } | 106 | } |
| 107 | if (udid) | ||
| 108 | free(udid); | ||
| 107 | udid = strdup(optarg); | 109 | udid = strdup(optarg); |
| 108 | break; | 110 | break; |
| 109 | case 'l': | 111 | case 'l': |
| 110 | list_mode = 1; | 112 | list_mode = 1; |
| 111 | break; | 113 | break; |
| 112 | case 't': | 114 | case 't': |
| 115 | if (imagetype) | ||
| 116 | free(imagetype); | ||
| 113 | imagetype = strdup(optarg); | 117 | imagetype = strdup(optarg); |
| 114 | break; | 118 | break; |
| 115 | case 'x': | 119 | case 'x': |
