diff options
| author | 2018-10-01 02:32:51 +0200 | |
|---|---|---|
| committer | 2018-10-01 02:32:51 +0200 | |
| commit | b34e3435c21d06b3e5a4e7b5246fb6ddb6641a9f (patch) | |
| tree | 89b78560cd956b956a03c9b207816d8cb345c37e /tools | |
| parent | f1ee0fd8b2b1dd65c64f5a67e208efc708295caa (diff) | |
| download | libimobiledevice-b34e3435c21d06b3e5a4e7b5246fb6ddb6641a9f.tar.gz libimobiledevice-b34e3435c21d06b3e5a4e7b5246fb6ddb6641a9f.tar.bz2 | |
tools: Remove length check on device UDID arguments to support newer devices
The 40 characters length check on the device UDID made newer devices unusable
with the libimobiledevice tools and was actually redundant since an invalid
UDID will always fail to resolve. This commit removes the length check
alltogether (but makes sure it is not an empty string "").
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/idevice_id.c | 6 | ||||
| -rw-r--r-- | tools/idevicebackup.c | 4 | ||||
| -rw-r--r-- | tools/idevicebackup2.c | 6 | ||||
| -rw-r--r-- | tools/idevicecrashreport.c | 4 | ||||
| -rw-r--r-- | tools/idevicedate.c | 4 | ||||
| -rw-r--r-- | tools/idevicedebug.c | 4 | ||||
| -rw-r--r-- | tools/idevicedebugserverproxy.c | 4 | ||||
| -rw-r--r-- | tools/idevicediagnostics.c | 4 | ||||
| -rw-r--r-- | tools/ideviceenterrecovery.c | 4 | ||||
| -rw-r--r-- | tools/ideviceimagemounter.c | 25 | ||||
| -rw-r--r-- | tools/ideviceinfo.c | 4 | ||||
| -rw-r--r-- | tools/idevicename.c | 8 | ||||
| -rw-r--r-- | tools/idevicenotificationproxy.c | 4 | ||||
| -rw-r--r-- | tools/idevicepair.c | 12 | ||||
| -rw-r--r-- | tools/ideviceprovision.c | 4 | ||||
| -rw-r--r-- | tools/idevicescreenshot.c | 4 | ||||
| -rw-r--r-- | tools/idevicesyslog.c | 4 |
17 files changed, 54 insertions, 51 deletions
diff --git a/tools/idevice_id.c b/tools/idevice_id.c index 6f020ff..558dcbe 100644 --- a/tools/idevice_id.c +++ b/tools/idevice_id.c | |||
| @@ -40,7 +40,7 @@ static void print_usage(int argc, char **argv) | |||
| 40 | name = strrchr(argv[0], '/'); | 40 | name = strrchr(argv[0], '/'); |
| 41 | printf("Usage: %s [OPTIONS] [UDID]\n", (name ? name + 1: argv[0])); | 41 | printf("Usage: %s [OPTIONS] [UDID]\n", (name ? name + 1: argv[0])); |
| 42 | printf("Prints device name or a list of attached devices.\n\n"); | 42 | printf("Prints device name or a list of attached devices.\n\n"); |
| 43 | printf(" The UDID is a 40-digit hexadecimal number of the device\n"); | 43 | printf(" UDID is the unique device identifier of the device\n"); |
| 44 | printf(" for which the name should be retrieved.\n\n"); | 44 | printf(" for which the name should be retrieved.\n\n"); |
| 45 | printf(" -l, --list\t\tlist UDID of all attached devices\n"); | 45 | printf(" -l, --list\t\tlist UDID of all attached devices\n"); |
| 46 | printf(" -d, --debug\t\tenable communication debugging\n"); | 46 | printf(" -d, --debug\t\tenable communication debugging\n"); |
| @@ -79,7 +79,7 @@ int main(int argc, char **argv) | |||
| 79 | /* check if udid was passed */ | 79 | /* check if udid was passed */ |
| 80 | if (mode == MODE_SHOW_ID) { | 80 | if (mode == MODE_SHOW_ID) { |
| 81 | i--; | 81 | i--; |
| 82 | if (!argv[i] || (strlen(argv[i]) != 40)) { | 82 | if (argc < 2 || !argv[i] || !*argv[i]) { |
| 83 | print_usage(argc, argv); | 83 | print_usage(argc, argv); |
| 84 | return 0; | 84 | return 0; |
| 85 | } | 85 | } |
| @@ -90,7 +90,7 @@ int main(int argc, char **argv) | |||
| 90 | case MODE_SHOW_ID: | 90 | case MODE_SHOW_ID: |
| 91 | idevice_new(&device, udid); | 91 | idevice_new(&device, udid); |
| 92 | if (!device) { | 92 | if (!device) { |
| 93 | fprintf(stderr, "ERROR: No device with UDID=%s attached.\n", udid); | 93 | fprintf(stderr, "ERROR: No device with UDID %s attached.\n", udid); |
| 94 | return -2; | 94 | return -2; |
| 95 | } | 95 | } |
| 96 | 96 | ||
diff --git a/tools/idevicebackup.c b/tools/idevicebackup.c index 7e825de..cd69bcc 100644 --- a/tools/idevicebackup.c +++ b/tools/idevicebackup.c | |||
| @@ -671,7 +671,7 @@ static void print_usage(int argc, char **argv) | |||
| 671 | printf(" restore\tRestores a device backup from DIRECTORY.\n\n"); | 671 | printf(" restore\tRestores a device backup from DIRECTORY.\n\n"); |
| 672 | printf("options:\n"); | 672 | printf("options:\n"); |
| 673 | printf(" -d, --debug\t\tenable communication debugging\n"); | 673 | printf(" -d, --debug\t\tenable communication debugging\n"); |
| 674 | printf(" -u, --udid UDID\ttarget specific device by its 40-digit device UDID\n"); | 674 | printf(" -u, --udid UDID\ttarget specific device by UDID\n"); |
| 675 | printf(" -h, --help\t\tprints usage information\n"); | 675 | printf(" -h, --help\t\tprints usage information\n"); |
| 676 | printf("\n"); | 676 | printf("\n"); |
| 677 | printf("Homepage: <" PACKAGE_URL ">\n"); | 677 | printf("Homepage: <" PACKAGE_URL ">\n"); |
| @@ -715,7 +715,7 @@ int main(int argc, char *argv[]) | |||
| 715 | } | 715 | } |
| 716 | else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { | 716 | else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { |
| 717 | i++; | 717 | i++; |
| 718 | if (!argv[i] || (strlen(argv[i]) != 40)) { | 718 | if (!argv[i] || !*argv[i]) { |
| 719 | print_usage(argc, argv); | 719 | print_usage(argc, argv); |
| 720 | return 0; | 720 | return 0; |
| 721 | } | 721 | } |
diff --git a/tools/idevicebackup2.c b/tools/idevicebackup2.c index 7fb67df..6d4785b 100644 --- a/tools/idevicebackup2.c +++ b/tools/idevicebackup2.c | |||
| @@ -1323,7 +1323,7 @@ static void print_usage(int argc, char **argv) | |||
| 1323 | printf("\n"); | 1323 | printf("\n"); |
| 1324 | printf("options:\n"); | 1324 | printf("options:\n"); |
| 1325 | printf(" -d, --debug\t\tenable communication debugging\n"); | 1325 | printf(" -d, --debug\t\tenable communication debugging\n"); |
| 1326 | printf(" -u, --udid UDID\ttarget specific device by its 40-digit device UDID\n"); | 1326 | printf(" -u, --udid UDID\ttarget specific device by UDID\n"); |
| 1327 | printf(" -s, --source UDID\tuse backup data from device specified by UDID\n"); | 1327 | printf(" -s, --source UDID\tuse backup data from device specified by UDID\n"); |
| 1328 | printf(" -i, --interactive\trequest passwords interactively\n"); | 1328 | printf(" -i, --interactive\trequest passwords interactively\n"); |
| 1329 | printf(" -h, --help\t\tprints usage information\n"); | 1329 | printf(" -h, --help\t\tprints usage information\n"); |
| @@ -1369,7 +1369,7 @@ int main(int argc, char *argv[]) | |||
| 1369 | } | 1369 | } |
| 1370 | else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { | 1370 | else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { |
| 1371 | i++; | 1371 | i++; |
| 1372 | if (!argv[i] || (strlen(argv[i]) != 40)) { | 1372 | if (!argv[i] || !*argv[i]) { |
| 1373 | print_usage(argc, argv); | 1373 | print_usage(argc, argv); |
| 1374 | return -1; | 1374 | return -1; |
| 1375 | } | 1375 | } |
| @@ -1378,7 +1378,7 @@ int main(int argc, char *argv[]) | |||
| 1378 | } | 1378 | } |
| 1379 | else if (!strcmp(argv[i], "-s") || !strcmp(argv[i], "--source")) { | 1379 | else if (!strcmp(argv[i], "-s") || !strcmp(argv[i], "--source")) { |
| 1380 | i++; | 1380 | i++; |
| 1381 | if (!argv[i] || (strlen(argv[i]) != 40)) { | 1381 | if (!argv[i] || !*argv[i]) { |
| 1382 | print_usage(argc, argv); | 1382 | print_usage(argc, argv); |
| 1383 | return -1; | 1383 | return -1; |
| 1384 | } | 1384 | } |
diff --git a/tools/idevicecrashreport.c b/tools/idevicecrashreport.c index 4d7f41c..e05d506 100644 --- a/tools/idevicecrashreport.c +++ b/tools/idevicecrashreport.c | |||
| @@ -301,7 +301,7 @@ static void print_usage(int argc, char **argv) | |||
| 301 | printf(" -e, --extract\t\textract raw crash report into separate '.crash' file\n"); | 301 | printf(" -e, --extract\t\textract raw crash report into separate '.crash' file\n"); |
| 302 | printf(" -k, --keep\t\tcopy but do not remove crash reports from device\n"); | 302 | printf(" -k, --keep\t\tcopy but do not remove crash reports from device\n"); |
| 303 | printf(" -d, --debug\t\tenable communication debugging\n"); | 303 | printf(" -d, --debug\t\tenable communication debugging\n"); |
| 304 | printf(" -u, --udid UDID\ttarget specific device by its 40-digit device UDID\n"); | 304 | printf(" -u, --udid UDID\ttarget specific device by UDID\n"); |
| 305 | printf(" -h, --help\t\tprints usage information\n"); | 305 | printf(" -h, --help\t\tprints usage information\n"); |
| 306 | printf("\n"); | 306 | printf("\n"); |
| 307 | printf("Homepage: <" PACKAGE_URL ">\n"); | 307 | printf("Homepage: <" PACKAGE_URL ">\n"); |
| @@ -327,7 +327,7 @@ int main(int argc, char* argv[]) { | |||
| 327 | } | 327 | } |
| 328 | else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { | 328 | else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { |
| 329 | i++; | 329 | i++; |
| 330 | if (!argv[i] || (strlen(argv[i]) != 40)) { | 330 | if (!argv[i] || !*argv[i]) { |
| 331 | print_usage(argc, argv); | 331 | print_usage(argc, argv); |
| 332 | return 0; | 332 | return 0; |
| 333 | } | 333 | } |
diff --git a/tools/idevicedate.c b/tools/idevicedate.c index 97243bb..2676880 100644 --- a/tools/idevicedate.c +++ b/tools/idevicedate.c | |||
| @@ -50,7 +50,7 @@ static void print_usage(int argc, char **argv) | |||
| 50 | printf("NOTE: Setting the time on iOS 6 and later is only supported\n"); | 50 | printf("NOTE: Setting the time on iOS 6 and later is only supported\n"); |
| 51 | printf(" in the setup wizard screens before device activation.\n\n"); | 51 | printf(" in the setup wizard screens before device activation.\n\n"); |
| 52 | printf(" -d, --debug\t\tenable communication debugging\n"); | 52 | printf(" -d, --debug\t\tenable communication debugging\n"); |
| 53 | printf(" -u, --udid UDID\ttarget specific device by its 40-digit device UDID\n"); | 53 | printf(" -u, --udid UDID\ttarget specific device by UDID\n"); |
| 54 | printf(" -s, --set TIMESTAMP\tset UTC time described by TIMESTAMP\n"); | 54 | printf(" -s, --set TIMESTAMP\tset UTC time described by TIMESTAMP\n"); |
| 55 | printf(" -c, --sync\t\tset time of device to current system time\n"); | 55 | printf(" -c, --sync\t\tset time of device to current system time\n"); |
| 56 | printf(" -h, --help\t\tprints usage information\n"); | 56 | printf(" -h, --help\t\tprints usage information\n"); |
| @@ -84,7 +84,7 @@ int main(int argc, char *argv[]) | |||
| 84 | } | 84 | } |
| 85 | else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { | 85 | else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { |
| 86 | i++; | 86 | i++; |
| 87 | if (!argv[i] || (strlen(argv[i]) != 40)) { | 87 | if (!argv[i] || !*argv[i]) { |
| 88 | print_usage(argc, argv); | 88 | print_usage(argc, argv); |
| 89 | return 0; | 89 | return 0; |
| 90 | } | 90 | } |
diff --git a/tools/idevicedebug.c b/tools/idevicedebug.c index f18254a..c7508e3 100644 --- a/tools/idevicedebug.c +++ b/tools/idevicedebug.c | |||
| @@ -188,7 +188,7 @@ static void print_usage(int argc, char **argv) | |||
| 188 | printf("\n"); | 188 | printf("\n"); |
| 189 | printf(" The following OPTIONS are accepted:\n"); | 189 | printf(" The following OPTIONS are accepted:\n"); |
| 190 | printf(" -e, --env NAME=VALUE\tset environment variable NAME to VALUE\n"); | 190 | printf(" -e, --env NAME=VALUE\tset environment variable NAME to VALUE\n"); |
| 191 | printf(" -u, --udid UDID\ttarget specific device by its 40-digit device UDID\n"); | 191 | printf(" -u, --udid UDID\ttarget specific device by UDID\n"); |
| 192 | printf(" -d, --debug\t\tenable communication debugging\n"); | 192 | printf(" -d, --debug\t\tenable communication debugging\n"); |
| 193 | printf(" -h, --help\t\tprints usage information\n"); | 193 | printf(" -h, --help\t\tprints usage information\n"); |
| 194 | printf("\n"); | 194 | printf("\n"); |
| @@ -233,7 +233,7 @@ int main(int argc, char *argv[]) | |||
| 233 | continue; | 233 | continue; |
| 234 | } else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { | 234 | } else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { |
| 235 | i++; | 235 | i++; |
| 236 | if (!argv[i] || (strlen(argv[i]) != 40)) { | 236 | if (!argv[i] || !*argv[i]) { |
| 237 | print_usage(argc, argv); | 237 | print_usage(argc, argv); |
| 238 | res = 0; | 238 | res = 0; |
| 239 | goto cleanup; | 239 | goto cleanup; |
diff --git a/tools/idevicedebugserverproxy.c b/tools/idevicedebugserverproxy.c index 56b1013..0b0419b 100644 --- a/tools/idevicedebugserverproxy.c +++ b/tools/idevicedebugserverproxy.c | |||
| @@ -71,7 +71,7 @@ static void print_usage(int argc, char **argv) | |||
| 71 | printf("Usage: %s [OPTIONS] <PORT>\n", (name ? name + 1: argv[0])); | 71 | printf("Usage: %s [OPTIONS] <PORT>\n", (name ? name + 1: argv[0])); |
| 72 | printf("Proxy debugserver connection from device to a local socket at PORT.\n\n"); | 72 | printf("Proxy debugserver connection from device to a local socket at PORT.\n\n"); |
| 73 | printf(" -d, --debug\t\tenable communication debugging\n"); | 73 | printf(" -d, --debug\t\tenable communication debugging\n"); |
| 74 | printf(" -u, --udid UDID\ttarget specific device by its 40-digit device UDID\n"); | 74 | printf(" -u, --udid UDID\ttarget specific device by UDID\n"); |
| 75 | printf(" -h, --help\t\tprints usage information\n"); | 75 | printf(" -h, --help\t\tprints usage information\n"); |
| 76 | printf("\n"); | 76 | printf("\n"); |
| 77 | printf("Homepage: <" PACKAGE_URL ">\n"); | 77 | printf("Homepage: <" PACKAGE_URL ">\n"); |
| @@ -280,7 +280,7 @@ int main(int argc, char *argv[]) | |||
| 280 | } | 280 | } |
| 281 | else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { | 281 | else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { |
| 282 | i++; | 282 | i++; |
| 283 | if (!argv[i] || (strlen(argv[i]) != 40)) { | 283 | if (!argv[i] || !*argv[i]) { |
| 284 | print_usage(argc, argv); | 284 | print_usage(argc, argv); |
| 285 | return 0; | 285 | return 0; |
| 286 | } | 286 | } |
diff --git a/tools/idevicediagnostics.c b/tools/idevicediagnostics.c index 66e192f..8c32854 100644 --- a/tools/idevicediagnostics.c +++ b/tools/idevicediagnostics.c | |||
| @@ -79,7 +79,7 @@ int main(int argc, char **argv) | |||
| 79 | } | 79 | } |
| 80 | else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { | 80 | else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { |
| 81 | i++; | 81 | i++; |
| 82 | if (!argv[i] || (strlen(argv[i]) != 40)) { | 82 | if (!argv[i] || !*argv[i]) { |
| 83 | print_usage(argc, argv); | 83 | print_usage(argc, argv); |
| 84 | result = 0; | 84 | result = 0; |
| 85 | goto cleanup; | 85 | goto cleanup; |
| @@ -318,7 +318,7 @@ void print_usage(int argc, char **argv) | |||
| 318 | printf(" sleep\t\t\t\tput device into sleep mode (disconnects from host)\n\n"); | 318 | printf(" sleep\t\t\t\tput device into sleep mode (disconnects from host)\n\n"); |
| 319 | printf(" The following OPTIONS are accepted:\n"); | 319 | printf(" The following OPTIONS are accepted:\n"); |
| 320 | printf(" -d, --debug\t\tenable communication debugging\n"); | 320 | printf(" -d, --debug\t\tenable communication debugging\n"); |
| 321 | printf(" -u, --udid UDID\ttarget specific device by its 40-digit device UDID\n"); | 321 | printf(" -u, --udid UDID\ttarget specific device by UDID\n"); |
| 322 | printf(" -h, --help\t\tprints usage information\n"); | 322 | printf(" -h, --help\t\tprints usage information\n"); |
| 323 | printf("\n"); | 323 | printf("\n"); |
| 324 | printf("Homepage: <" PACKAGE_URL ">\n"); | 324 | printf("Homepage: <" PACKAGE_URL ">\n"); |
diff --git a/tools/ideviceenterrecovery.c b/tools/ideviceenterrecovery.c index 21c4ff6..69484cc 100644 --- a/tools/ideviceenterrecovery.c +++ b/tools/ideviceenterrecovery.c | |||
| @@ -37,7 +37,7 @@ static void print_usage(int argc, char **argv) | |||
| 37 | 37 | ||
| 38 | name = strrchr(argv[0], '/'); | 38 | name = strrchr(argv[0], '/'); |
| 39 | printf("Usage: %s [OPTIONS] UDID\n", (name ? name + 1: argv[0])); | 39 | printf("Usage: %s [OPTIONS] UDID\n", (name ? name + 1: argv[0])); |
| 40 | printf("Makes a device with the supplied 40-digit UDID enter recovery mode immediately.\n\n"); | 40 | printf("Makes a device with the supplied UDID enter recovery mode immediately.\n\n"); |
| 41 | printf(" -d, --debug\t\tenable communication debugging\n"); | 41 | printf(" -d, --debug\t\tenable communication debugging\n"); |
| 42 | printf(" -h, --help\t\tprints usage information\n"); | 42 | printf(" -h, --help\t\tprints usage information\n"); |
| 43 | printf("\n"); | 43 | printf("\n"); |
| @@ -66,7 +66,7 @@ int main(int argc, char *argv[]) | |||
| 66 | } | 66 | } |
| 67 | 67 | ||
| 68 | i--; | 68 | i--; |
| 69 | if (!argv[i] || (strlen(argv[i]) != 40)) { | 69 | if (argc < 2 || !argv[i] || !*argv[i]) { |
| 70 | print_usage(argc, argv); | 70 | print_usage(argc, argv); |
| 71 | return 0; | 71 | return 0; |
| 72 | } | 72 | } |
diff --git a/tools/ideviceimagemounter.c b/tools/ideviceimagemounter.c index d56fa0c..7101c7e 100644 --- a/tools/ideviceimagemounter.c +++ b/tools/ideviceimagemounter.c | |||
| @@ -63,7 +63,7 @@ static void print_usage(int argc, char **argv) | |||
| 63 | name = strrchr(argv[0], '/'); | 63 | name = strrchr(argv[0], '/'); |
| 64 | printf("Usage: %s [OPTIONS] IMAGE_FILE IMAGE_SIGNATURE_FILE\n\n", (name ? name + 1: argv[0])); | 64 | printf("Usage: %s [OPTIONS] IMAGE_FILE IMAGE_SIGNATURE_FILE\n\n", (name ? name + 1: argv[0])); |
| 65 | printf("Mounts the specified disk image on the device.\n\n"); | 65 | printf("Mounts the specified disk image on the device.\n\n"); |
| 66 | printf(" -u, --udid UDID\ttarget specific device by its 40-digit device UDID\n"); | 66 | printf(" -u, --udid UDID\ttarget specific device by UDID\n"); |
| 67 | printf(" -l, --list\t\tList mount information\n"); | 67 | printf(" -l, --list\t\tList mount information\n"); |
| 68 | printf(" -t, --imagetype\tImage type to use, default is 'Developer'\n"); | 68 | printf(" -t, --imagetype\tImage type to use, default is 'Developer'\n"); |
| 69 | printf(" -x, --xml\t\tUse XML output\n"); | 69 | printf(" -x, --xml\t\tUse XML output\n"); |
| @@ -76,19 +76,18 @@ static void print_usage(int argc, char **argv) | |||
| 76 | static void parse_opts(int argc, char **argv) | 76 | static void parse_opts(int argc, char **argv) |
| 77 | { | 77 | { |
| 78 | static struct option longopts[] = { | 78 | static struct option longopts[] = { |
| 79 | {"help", 0, NULL, 'h'}, | 79 | {"help", no_argument, NULL, 'h'}, |
| 80 | {"udid", 0, NULL, 'u'}, | 80 | {"udid", required_argument, NULL, 'u'}, |
| 81 | {"list", 0, NULL, 'l'}, | 81 | {"list", no_argument, NULL, 'l'}, |
| 82 | {"imagetype", 0, NULL, 't'}, | 82 | {"imagetype", required_argument, NULL, 't'}, |
| 83 | {"xml", 0, NULL, 'x'}, | 83 | {"xml", no_argument, NULL, 'x'}, |
| 84 | {"debug", 0, NULL, 'd'}, | 84 | {"debug", no_argument, NULL, 'd'}, |
| 85 | {NULL, 0, NULL, 0} | 85 | {NULL, 0, NULL, 0} |
| 86 | }; | 86 | }; |
| 87 | int c; | 87 | int c; |
| 88 | 88 | ||
| 89 | while (1) { | 89 | while (1) { |
| 90 | c = getopt_long(argc, argv, "hu:lt:xd", longopts, | 90 | c = getopt_long(argc, argv, "hu:lt:xd", longopts, NULL); |
| 91 | (int *) 0); | ||
| 92 | if (c == -1) { | 91 | if (c == -1) { |
| 93 | break; | 92 | break; |
| 94 | } | 93 | } |
| @@ -98,14 +97,12 @@ static void parse_opts(int argc, char **argv) | |||
| 98 | print_usage(argc, argv); | 97 | print_usage(argc, argv); |
| 99 | exit(0); | 98 | exit(0); |
| 100 | case 'u': | 99 | case 'u': |
| 101 | if (strlen(optarg) != 40) { | 100 | if (!*optarg) { |
| 102 | printf("%s: invalid UDID specified (length != 40)\n", | 101 | fprintf(stderr, "ERROR: UDID must not be empty!\n"); |
| 103 | argv[0]); | ||
| 104 | print_usage(argc, argv); | 102 | print_usage(argc, argv); |
| 105 | exit(2); | 103 | exit(2); |
| 106 | } | 104 | } |
| 107 | if (udid) | 105 | free(udid); |
| 108 | free(udid); | ||
| 109 | udid = strdup(optarg); | 106 | udid = strdup(optarg); |
| 110 | break; | 107 | break; |
| 111 | case 'l': | 108 | case 'l': |
diff --git a/tools/ideviceinfo.c b/tools/ideviceinfo.c index 40bcac6..59fade8 100644 --- a/tools/ideviceinfo.c +++ b/tools/ideviceinfo.c | |||
| @@ -91,7 +91,7 @@ static void print_usage(int argc, char **argv) | |||
| 91 | printf("Show information about a connected device.\n\n"); | 91 | printf("Show information about a connected device.\n\n"); |
| 92 | printf(" -d, --debug\t\tenable communication debugging\n"); | 92 | printf(" -d, --debug\t\tenable communication debugging\n"); |
| 93 | printf(" -s, --simple\t\tuse a simple connection to avoid auto-pairing with the device\n"); | 93 | printf(" -s, --simple\t\tuse a simple connection to avoid auto-pairing with the device\n"); |
| 94 | printf(" -u, --udid UDID\ttarget specific device by its 40-digit device UDID\n"); | 94 | printf(" -u, --udid UDID\ttarget specific device by UDID\n"); |
| 95 | printf(" -q, --domain NAME\tset domain of query to NAME. Default: None\n"); | 95 | printf(" -q, --domain NAME\tset domain of query to NAME. Default: None\n"); |
| 96 | printf(" -k, --key NAME\tonly query key specified by NAME. Default: All keys.\n"); | 96 | printf(" -k, --key NAME\tonly query key specified by NAME. Default: All keys.\n"); |
| 97 | printf(" -x, --xml\t\toutput information as xml plist instead of key/value pairs\n"); | 97 | printf(" -x, --xml\t\toutput information as xml plist instead of key/value pairs\n"); |
| @@ -129,7 +129,7 @@ int main(int argc, char *argv[]) | |||
| 129 | } | 129 | } |
| 130 | else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { | 130 | else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { |
| 131 | i++; | 131 | i++; |
| 132 | if (!argv[i] || (strlen(argv[i]) != 40)) { | 132 | if (!argv[i] || !*argv[i]) { |
| 133 | print_usage(argc, argv); | 133 | print_usage(argc, argv); |
| 134 | return 0; | 134 | return 0; |
| 135 | } | 135 | } |
diff --git a/tools/idevicename.c b/tools/idevicename.c index 013becc..ef226f7 100644 --- a/tools/idevicename.c +++ b/tools/idevicename.c | |||
| @@ -38,7 +38,7 @@ static void print_usage(void) | |||
| 38 | printf("Display the device name or set it to NAME if specified.\n"); | 38 | printf("Display the device name or set it to NAME if specified.\n"); |
| 39 | printf("\n"); | 39 | printf("\n"); |
| 40 | printf(" -d, --debug\t\tenable communication debugging\n"); | 40 | printf(" -d, --debug\t\tenable communication debugging\n"); |
| 41 | printf(" -u, --udid UDID\tuse UDID to target a specific device\n"); | 41 | printf(" -u, --udid UDID\ttarget specific device by UDID\n"); |
| 42 | printf(" -h, --help\t\tprint usage information\n"); | 42 | printf(" -h, --help\t\tprint usage information\n"); |
| 43 | printf("\n"); | 43 | printf("\n"); |
| 44 | printf("Homepage: <" PACKAGE_URL ">\n"); | 44 | printf("Homepage: <" PACKAGE_URL ">\n"); |
| @@ -60,6 +60,12 @@ int main(int argc, char** argv) | |||
| 60 | while ((c = getopt_long(argc, argv, "du:h", longopts, &optidx)) != -1) { | 60 | while ((c = getopt_long(argc, argv, "du:h", longopts, &optidx)) != -1) { |
| 61 | switch (c) { | 61 | switch (c) { |
| 62 | case 'u': | 62 | case 'u': |
| 63 | if (!*optarg) { | ||
| 64 | fprintf(stderr, "ERROR: UDID must not be empty!\n"); | ||
| 65 | print_usage(); | ||
| 66 | exit(2); | ||
| 67 | } | ||
| 68 | free(udid); | ||
| 63 | udid = strdup(optarg); | 69 | udid = strdup(optarg); |
| 64 | break; | 70 | break; |
| 65 | case 'h': | 71 | case 'h': |
diff --git a/tools/idevicenotificationproxy.c b/tools/idevicenotificationproxy.c index 5e4ac9a..72b406c 100644 --- a/tools/idevicenotificationproxy.c +++ b/tools/idevicenotificationproxy.c | |||
| @@ -70,7 +70,7 @@ static void print_usage(int argc, char **argv) | |||
| 70 | printf("\n"); | 70 | printf("\n"); |
| 71 | printf(" The following OPTIONS are accepted:\n"); | 71 | printf(" The following OPTIONS are accepted:\n"); |
| 72 | printf(" -d, --debug\t\tenable communication debugging\n"); | 72 | printf(" -d, --debug\t\tenable communication debugging\n"); |
| 73 | printf(" -u, --udid UDID\ttarget specific device by its 40-digit device UDID\n"); | 73 | printf(" -u, --udid UDID\ttarget specific device by UDID\n"); |
| 74 | printf(" -h, --help\t\tprints usage information\n"); | 74 | printf(" -h, --help\t\tprints usage information\n"); |
| 75 | printf("\n"); | 75 | printf("\n"); |
| 76 | printf("Homepage: <" PACKAGE_URL ">\n"); | 76 | printf("Homepage: <" PACKAGE_URL ">\n"); |
| @@ -114,7 +114,7 @@ int main(int argc, char *argv[]) | |||
| 114 | } | 114 | } |
| 115 | else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { | 115 | else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { |
| 116 | i++; | 116 | i++; |
| 117 | if (!argv[i] || (strlen(argv[i]) != 40)) { | 117 | if (!argv[i] || !*argv[i]) { |
| 118 | print_usage(argc, argv); | 118 | print_usage(argc, argv); |
| 119 | result = 0; | 119 | result = 0; |
| 120 | goto cleanup; | 120 | goto cleanup; |
diff --git a/tools/idevicepair.c b/tools/idevicepair.c index b6f0751..6ae9103 100644 --- a/tools/idevicepair.c +++ b/tools/idevicepair.c | |||
| @@ -72,7 +72,7 @@ static void print_usage(int argc, char **argv) | |||
| 72 | printf(" list list devices paired with this host\n\n"); | 72 | printf(" list list devices paired with this host\n\n"); |
| 73 | printf(" The following OPTIONS are accepted:\n"); | 73 | printf(" The following OPTIONS are accepted:\n"); |
| 74 | printf(" -d, --debug enable communication debugging\n"); | 74 | printf(" -d, --debug enable communication debugging\n"); |
| 75 | printf(" -u, --udid UDID target specific device by its 40-digit device UDID\n"); | 75 | printf(" -u, --udid UDID target specific device by UDID\n"); |
| 76 | printf(" -h, --help prints usage information\n"); | 76 | printf(" -h, --help prints usage information\n"); |
| 77 | printf("\n"); | 77 | printf("\n"); |
| 78 | printf("Homepage: <" PACKAGE_URL ">\n"); | 78 | printf("Homepage: <" PACKAGE_URL ">\n"); |
| @@ -81,9 +81,9 @@ static void print_usage(int argc, char **argv) | |||
| 81 | static void parse_opts(int argc, char **argv) | 81 | static void parse_opts(int argc, char **argv) |
| 82 | { | 82 | { |
| 83 | static struct option longopts[] = { | 83 | static struct option longopts[] = { |
| 84 | {"help", 0, NULL, 'h'}, | 84 | {"help", no_argument, NULL, 'h'}, |
| 85 | {"udid", 1, NULL, 'u'}, | 85 | {"udid", required_argument, NULL, 'u'}, |
| 86 | {"debug", 0, NULL, 'd'}, | 86 | {"debug", no_argument, NULL, 'd'}, |
| 87 | {NULL, 0, NULL, 0} | 87 | {NULL, 0, NULL, 0} |
| 88 | }; | 88 | }; |
| 89 | int c; | 89 | int c; |
| @@ -99,8 +99,8 @@ static void parse_opts(int argc, char **argv) | |||
| 99 | print_usage(argc, argv); | 99 | print_usage(argc, argv); |
| 100 | exit(EXIT_SUCCESS); | 100 | exit(EXIT_SUCCESS); |
| 101 | case 'u': | 101 | case 'u': |
| 102 | if (strlen(optarg) != 40) { | 102 | if (!*optarg) { |
| 103 | printf("%s: invalid UDID specified (length != 40)\n", argv[0]); | 103 | fprintf(stderr, "ERROR: UDID must not be empty!\n"); |
| 104 | print_usage(argc, argv); | 104 | print_usage(argc, argv); |
| 105 | exit(2); | 105 | exit(2); |
| 106 | } | 106 | } |
diff --git a/tools/ideviceprovision.c b/tools/ideviceprovision.c index 0bef7e8..f91ce4f 100644 --- a/tools/ideviceprovision.c +++ b/tools/ideviceprovision.c | |||
| @@ -64,7 +64,7 @@ static void print_usage(int argc, char **argv) | |||
| 64 | printf(" \tspecified by FILE.\n\n"); | 64 | printf(" \tspecified by FILE.\n\n"); |
| 65 | printf(" The following OPTIONS are accepted:\n"); | 65 | printf(" The following OPTIONS are accepted:\n"); |
| 66 | printf(" -d, --debug enable communication debugging\n"); | 66 | printf(" -d, --debug enable communication debugging\n"); |
| 67 | printf(" -u, --udid UDID target specific device by its 40-digit device UDID\n"); | 67 | printf(" -u, --udid UDID target specific device by UDID\n"); |
| 68 | printf(" -x, --xml print XML output when using the 'dump' command\n"); | 68 | printf(" -x, --xml print XML output when using the 'dump' command\n"); |
| 69 | printf(" -h, --help prints usage information\n"); | 69 | printf(" -h, --help prints usage information\n"); |
| 70 | printf("\n"); | 70 | printf("\n"); |
| @@ -299,7 +299,7 @@ int main(int argc, char *argv[]) | |||
| 299 | } | 299 | } |
| 300 | else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { | 300 | else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { |
| 301 | i++; | 301 | i++; |
| 302 | if (!argv[i] || (strlen(argv[i]) != 40)) { | 302 | if (!argv[i] || !*argv[i]) { |
| 303 | print_usage(argc, argv); | 303 | print_usage(argc, argv); |
| 304 | return 0; | 304 | return 0; |
| 305 | } | 305 | } |
diff --git a/tools/idevicescreenshot.c b/tools/idevicescreenshot.c index 74acdf6..f2bcd48 100644 --- a/tools/idevicescreenshot.c +++ b/tools/idevicescreenshot.c | |||
| @@ -55,7 +55,7 @@ int main(int argc, char **argv) | |||
| 55 | } | 55 | } |
| 56 | else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { | 56 | else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { |
| 57 | i++; | 57 | i++; |
| 58 | if (!argv[i] || (strlen(argv[i]) != 40)) { | 58 | if (!argv[i] || !*argv[i]) { |
| 59 | print_usage(argc, argv); | 59 | print_usage(argc, argv); |
| 60 | return 0; | 60 | return 0; |
| 61 | } | 61 | } |
| @@ -158,7 +158,7 @@ void print_usage(int argc, char **argv) | |||
| 158 | printf("NOTE: A mounted developer disk image is required on the device, otherwise\n"); | 158 | printf("NOTE: A mounted developer disk image is required on the device, otherwise\n"); |
| 159 | printf("the screenshotr service is not available.\n\n"); | 159 | printf("the screenshotr service is not available.\n\n"); |
| 160 | printf(" -d, --debug\t\tenable communication debugging\n"); | 160 | printf(" -d, --debug\t\tenable communication debugging\n"); |
| 161 | printf(" -u, --udid UDID\ttarget specific device by its 40-digit device UDID\n"); | 161 | printf(" -u, --udid UDID\ttarget specific device by UDID\n"); |
| 162 | printf(" -h, --help\t\tprints usage information\n"); | 162 | printf(" -h, --help\t\tprints usage information\n"); |
| 163 | printf("\n"); | 163 | printf("\n"); |
| 164 | printf("Homepage: <" PACKAGE_URL ">\n"); | 164 | printf("Homepage: <" PACKAGE_URL ">\n"); |
diff --git a/tools/idevicesyslog.c b/tools/idevicesyslog.c index 0a923b8..76de128 100644 --- a/tools/idevicesyslog.c +++ b/tools/idevicesyslog.c | |||
| @@ -185,7 +185,7 @@ int main(int argc, char *argv[]) | |||
| 185 | } | 185 | } |
| 186 | else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { | 186 | else if (!strcmp(argv[i], "-u") || !strcmp(argv[i], "--udid")) { |
| 187 | i++; | 187 | i++; |
| 188 | if (!argv[i] || (strlen(argv[i]) != 40)) { | 188 | if (!argv[i] || !*argv[i]) { |
| 189 | print_usage(argc, argv); | 189 | print_usage(argc, argv); |
| 190 | return 0; | 190 | return 0; |
| 191 | } | 191 | } |
| @@ -238,7 +238,7 @@ void print_usage(int argc, char **argv) | |||
| 238 | printf("Usage: %s [OPTIONS]\n", (name ? name + 1: argv[0])); | 238 | printf("Usage: %s [OPTIONS]\n", (name ? name + 1: argv[0])); |
| 239 | printf("Relay syslog of a connected device.\n\n"); | 239 | printf("Relay syslog of a connected device.\n\n"); |
| 240 | printf(" -d, --debug\t\tenable communication debugging\n"); | 240 | printf(" -d, --debug\t\tenable communication debugging\n"); |
| 241 | printf(" -u, --udid UDID\ttarget specific device by its 40-digit device UDID\n"); | 241 | printf(" -u, --udid UDID\ttarget specific device by UDID\n"); |
| 242 | printf(" -h, --help\t\tprints usage information\n"); | 242 | printf(" -h, --help\t\tprints usage information\n"); |
| 243 | printf("\n"); | 243 | printf("\n"); |
| 244 | printf("Homepage: <" PACKAGE_URL ">\n"); | 244 | printf("Homepage: <" PACKAGE_URL ">\n"); |
