summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Bastien Nocera2018-07-24 14:27:05 +0200
committerGravatar Bastien Nocera2018-07-24 14:36:27 +0200
commite46d17cadb3dd1259b0ca78dc80fc06fbf10c516 (patch)
tree12a64bb4f792b50e97eb12e1284ccf3a5d4c5f16
parent6358b721c2f4dfea1d8f9f84346da30b458ec441 (diff)
downloadlibimobiledevice-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.c4
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':