diff --git a/libmisc/idmapping.c b/libmisc/idmapping.c index 714c29eb..0dce634d 100644 --- a/libmisc/idmapping.c +++ b/libmisc/idmapping.c @@ -70,13 +70,19 @@ struct map_range *get_map_ranges(int ranges, int argc, char **argv) /* Gather up the ranges from the command line */ mapping = mappings; - for (idx = 0; idx < ranges; idx++, argidx += 3, mapping++) { - if (!getulong(argv[argidx + 0], &mapping->upper)) + for (idx = 0, argidx = 0; idx < ranges; idx++, argidx += 3, mapping++) { + if (!getulong(argv[argidx + 0], &mapping->upper)) { + free(mappings); return NULL; - if (!getulong(argv[argidx + 1], &mapping->lower)) + } + if (!getulong(argv[argidx + 1], &mapping->lower)) { + free(mappings); return NULL; - if (!getulong(argv[argidx + 2], &mapping->count)) + } + if (!getulong(argv[argidx + 2], &mapping->count)) { + free(mappings); return NULL; + } } return mappings; }