Messages in this thread Patch in this message | | | Date | Wed, 01 Jul 2015 18:51:38 +0800 | From | Pan Xinhui <> | Subject | [PATCH 2/3, RESEND] lib/bitmap.c: fix a special string handling bug in __bitmap_parselist |
| |
If string end with '-', for exapmle, bitmap_parselist("1,0-",&mask, nmaskbits), It is not in a valid pattern, so add a check after loop. Return -EINVAL on such condition.
Signed-off-by: Pan Xinhui <xinhuix.pan@intel.com> --- lib/bitmap.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/lib/bitmap.c b/lib/bitmap.c index eb21456..f549176 100644 --- a/lib/bitmap.c +++ b/lib/bitmap.c @@ -546,6 +546,7 @@ static int __bitmap_parselist(const char *buf, unsigned int buflen, return -EINVAL; b = 0; in_range = 1; + at_start = 1; continue; } @@ -558,6 +559,9 @@ static int __bitmap_parselist(const char *buf, unsigned int buflen, at_start = 0; totaldigits++; } + /* if no digit is after '-', it's wrong*/ + if (at_start && in_range) + return -EINVAL; if (!(a <= b)) return -EINVAL; if (b >= nmaskbits) -- 1.9.1
| |