autofs4: use memchr() in invalid_string()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
66672fefaa
commit
3eac8778a2
@ -54,10 +54,9 @@ static int check_name(const char *name)
|
|||||||
* Check a string doesn't overrun the chunk of
|
* Check a string doesn't overrun the chunk of
|
||||||
* memory we copied from user land.
|
* 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 (memchr(str, 0, size))
|
||||||
if (!*str++)
|
|
||||||
return 0;
|
return 0;
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
@ -138,8 +137,7 @@ static int validate_dev_ioctl(int cmd, struct autofs_dev_ioctl *param)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (param->size > sizeof(*param)) {
|
if (param->size > sizeof(*param)) {
|
||||||
err = invalid_str(param->path,
|
err = invalid_str(param->path, param->size - sizeof(*param));
|
||||||
(void *) ((size_t) param + param->size));
|
|
||||||
if (err) {
|
if (err) {
|
||||||
AUTOFS_WARN(
|
AUTOFS_WARN(
|
||||||
"path string terminator missing for cmd(0x%08x)",
|
"path string terminator missing for cmd(0x%08x)",
|
||||||
|
Loading…
Reference in New Issue
Block a user