autofs4: use memchr() in invalid_string()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Al Viro 2009-04-07 11:12:46 -04:00
parent 66672fefaa
commit 3eac8778a2

View File

@ -54,11 +54,10 @@ static int check_name(const char *name)
* 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;
return -EINVAL;
}
@ -138,8 +137,7 @@ static int validate_dev_ioctl(int cmd, struct autofs_dev_ioctl *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)",