diff --git a/prog/sensord/args.c b/prog/sensord/args.c index 8c787d6d..d1a1d49b 100644 --- a/prog/sensord/args.c +++ b/prog/sensord/args.c @@ -231,33 +231,34 @@ int parseArgs(int argc, char **argv) int parseChips(int argc, char **argv) { - if (optind == argc) { + int i, n = argc - optind, err; + + if (n == 0) { sensord_args.chipNames[0].prefix = SENSORS_CHIP_NAME_PREFIX_ANY; sensord_args.chipNames[0].bus.type = SENSORS_BUS_TYPE_ANY; sensord_args.chipNames[0].bus.nr = SENSORS_BUS_NR_ANY; sensord_args.chipNames[0].addr = SENSORS_CHIP_NAME_ADDR_ANY; sensord_args.numChipNames = 1; - } else { - int i, n = argc - optind, err; - if (n > MAX_CHIP_NAMES) { - fprintf(stderr, "Too many chip names.\n"); + + return 0; + } + + if (n > MAX_CHIP_NAMES) { + fprintf(stderr, "Too many chip names.\n"); + return -1; + } + for (i = 0; i < n; ++i) { + char *arg = argv[optind + i]; + + err = sensors_parse_chip_name(arg, sensord_args.chipNames + i); + if (err) { + fprintf(stderr, "Invalid chip name `%s': %s\n", arg, + sensors_strerror(err)); return -1; } - for (i = 0; i < n; ++ i) { - char *arg = argv[optind + i]; - - err = sensors_parse_chip_name(arg, - sensord_args.chipNames + - i); - if (err) { - fprintf(stderr, - "Invalid chip name `%s': %s\n", arg, - sensors_strerror(err)); - return -1; - } - } - sensord_args.numChipNames = n; } + sensord_args.numChipNames = n; + return 0; }