aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'lib/cmdline.c')
-rw-r--r--lib/cmdline.c6
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
25static int get_range(char **str, int *pint) 25static 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 /*