diff options
| author | 2012-11-29 03:42:06 +0100 | |
|---|---|---|
| committer | 2012-11-29 03:42:06 +0100 | |
| commit | 36c0192fbb16d068214d2640aecfb731ea24bfaa (patch) | |
| tree | 4596eb003c5f074c4ca0b9e1e146680927916d11 /tools/idevicebackup2.c | |
| parent | d2b82f9a8330a995a3e913adf734ac2b9ece9916 (diff) | |
| download | libimobiledevice-36c0192fbb16d068214d2640aecfb731ea24bfaa.tar.gz libimobiledevice-36c0192fbb16d068214d2640aecfb731ea24bfaa.tar.bz2 | |
tools: use pointer instead of static buffer for UDID since it can start with '0'
Diffstat (limited to 'tools/idevicebackup2.c')
| -rw-r--r-- | tools/idevicebackup2.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/tools/idevicebackup2.c b/tools/idevicebackup2.c index 635a5ab..71afb5b 100644 --- a/tools/idevicebackup2.c +++ b/tools/idevicebackup2.c | |||
| @@ -1197,9 +1197,8 @@ int main(int argc, char *argv[]) | |||
| 1197 | { | 1197 | { |
| 1198 | idevice_error_t ret = IDEVICE_E_UNKNOWN_ERROR; | 1198 | idevice_error_t ret = IDEVICE_E_UNKNOWN_ERROR; |
| 1199 | int i; | 1199 | int i; |
| 1200 | char udid[41]; | 1200 | char* udid = NULL; |
| 1201 | uint16_t port = 0; | 1201 | uint16_t port = 0; |
| 1202 | udid[0] = 0; | ||
| 1203 | int cmd = -1; | 1202 | int cmd = -1; |
| 1204 | int cmd_flags = 0; | 1203 | int cmd_flags = 0; |
| 1205 | int is_full_backup = 0; | 1204 | int is_full_backup = 0; |
| @@ -1230,7 +1229,7 @@ int main(int argc, char *argv[]) | |||
| 1230 | print_usage(argc, argv); | 1229 | print_usage(argc, argv); |
| 1231 | return 0; | 1230 | return 0; |
| 1232 | } | 1231 | } |
| 1233 | strcpy(udid, argv[i]); | 1232 | udid = strdup(argv[i]); |
| 1234 | continue; | 1233 | continue; |
| 1235 | } | 1234 | } |
| 1236 | else if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help")) { | 1235 | else if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help")) { |
| @@ -1294,7 +1293,7 @@ int main(int argc, char *argv[]) | |||
| 1294 | return -1; | 1293 | return -1; |
| 1295 | } | 1294 | } |
| 1296 | 1295 | ||
| 1297 | if (udid[0] != 0) { | 1296 | if (udid) { |
| 1298 | ret = idevice_new(&phone, udid); | 1297 | ret = idevice_new(&phone, udid); |
| 1299 | if (ret != IDEVICE_E_SUCCESS) { | 1298 | if (ret != IDEVICE_E_SUCCESS) { |
| 1300 | printf("No device found with udid %s, is it plugged in?\n", udid); | 1299 | printf("No device found with udid %s, is it plugged in?\n", udid); |
| @@ -1308,10 +1307,7 @@ int main(int argc, char *argv[]) | |||
| 1308 | printf("No device found, is it plugged in?\n"); | 1307 | printf("No device found, is it plugged in?\n"); |
| 1309 | return -1; | 1308 | return -1; |
| 1310 | } | 1309 | } |
| 1311 | char *newudid = NULL; | 1310 | idevice_get_udid(phone, &udid); |
| 1312 | idevice_get_udid(phone, &newudid); | ||
| 1313 | strcpy(udid, newudid); | ||
| 1314 | free(newudid); | ||
| 1315 | } | 1311 | } |
| 1316 | 1312 | ||
| 1317 | /* backup directory must contain an Info.plist */ | 1313 | /* backup directory must contain an Info.plist */ |
| @@ -1893,6 +1889,10 @@ files_out: | |||
| 1893 | 1889 | ||
| 1894 | idevice_free(phone); | 1890 | idevice_free(phone); |
| 1895 | 1891 | ||
| 1892 | if (udid) { | ||
| 1893 | free(udid); | ||
| 1894 | } | ||
| 1895 | |||
| 1896 | return 0; | 1896 | return 0; |
| 1897 | } | 1897 | } |
| 1898 | 1898 | ||
