Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* Check a string doesn't overrun the chunk of
* memory we copied from user land.
*/
* Check a string doesn't overrun the chunk of
* memory we copied from user land.
*/
-static int invalid_str(char *str, void *end)
+static int invalid_str(char *str, size_t size)
- while ((void *) str <= end)
- if (!*str++)
- return 0;
+ if (memchr(str, 0, size))
+ return 0;
}
if (param->size > sizeof(*param)) {
}
if (param->size > sizeof(*param)) {
- err = invalid_str(param->path,
- (void *) ((size_t) param + param->size));
+ err = invalid_str(param->path, param->size - sizeof(*param));
if (err) {
AUTOFS_WARN(
"path string terminator missing for cmd(0x%08x)",
if (err) {
AUTOFS_WARN(
"path string terminator missing for cmd(0x%08x)",