Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1175068
| From | Pan Xinhui <xinhuix.pan@intel.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 2/3] lib/bitmap.c: fix a special string handling bug in __bitmap_parselist |
| Date | 2015-07-01 10:10 +0200 |
| Message-ID | <pHlfI-2Ay-25@gated-at.bofh.it> (permalink) |
| References | <pHgJ3-5HX-3@gated-at.bofh.it> <pHhF7-72H-5@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next | Find similar | Unroll thread
[PATCH 2/3] lib/bitmap.c: fix a special string handling bug in __bitmap_parselist Pan Xinhui <xinhuix.pan@intel.com> - 2015-07-01 10:10 +0200
csiph-web