diff options
Diffstat (limited to 'lib/cmdline.c')
-rw-r--r-- | lib/cmdline.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/cmdline.c b/lib/cmdline.c index 8f13cf73c2ec..79069d7938ea 100644 --- a/lib/cmdline.c +++ b/lib/cmdline.c | |||
@@ -22,14 +22,14 @@ | |||
22 | * the values[M, M+1, ..., N] into the ints array in get_options. | 22 | * the values[M, M+1, ..., N] into the ints array in get_options. |
23 | */ | 23 | */ |
24 | 24 | ||
25 | static int get_range(char **str, int *pint) | 25 | static int get_range(char **str, int *pint, int n) |
26 | { | 26 | { |
27 | int x, inc_counter, upper_range; | 27 | int x, inc_counter, upper_range; |
28 | 28 | ||
29 | (*str)++; | 29 | (*str)++; |
30 | upper_range = simple_strtol((*str), NULL, 0); | 30 | upper_range = simple_strtol((*str), NULL, 0); |
31 | inc_counter = upper_range - *pint; | 31 | inc_counter = upper_range - *pint; |
32 | for (x = *pint; x < upper_range; x++) | 32 | for (x = *pint; n && x < upper_range; x++, n--) |
33 | *pint++ = x; | 33 | *pint++ = x; |
34 | return inc_counter; | 34 | return inc_counter; |
35 | } | 35 | } |
@@ -96,7 +96,7 @@ char *get_options(const char *str, int nints, int *ints) | |||
96 | break; | 96 | break; |
97 | if (res == 3) { | 97 | if (res == 3) { |
98 | int range_nums; | 98 | int range_nums; |
99 | range_nums = get_range((char **)&str, ints + i); | 99 | range_nums = get_range((char **)&str, ints + i, nints - i); |
100 | if (range_nums < 0) | 100 | if (range_nums < 0) |
101 | break; | 101 | break; |
102 | /* | 102 | /* |