Commit efeb9e60 authored by Miklos Szeredi's avatar Miklos Szeredi

fuse: readdir: check for slash in names

Userspace can add names containing a slash character to the directory
listing.  Don't allow this as it could cause all sorts of trouble.
Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
Cc: stable@vger.kernel.org
parent 06a7c3c2
...@@ -1174,6 +1174,8 @@ static int parse_dirfile(char *buf, size_t nbytes, struct file *file, ...@@ -1174,6 +1174,8 @@ static int parse_dirfile(char *buf, size_t nbytes, struct file *file,
return -EIO; return -EIO;
if (reclen > nbytes) if (reclen > nbytes)
break; break;
if (memchr(dirent->name, '/', dirent->namelen) != NULL)
return -EIO;
if (!dir_emit(ctx, dirent->name, dirent->namelen, if (!dir_emit(ctx, dirent->name, dirent->namelen,
dirent->ino, dirent->type)) dirent->ino, dirent->type))
...@@ -1320,6 +1322,8 @@ static int parse_dirplusfile(char *buf, size_t nbytes, struct file *file, ...@@ -1320,6 +1322,8 @@ static int parse_dirplusfile(char *buf, size_t nbytes, struct file *file,
return -EIO; return -EIO;
if (reclen > nbytes) if (reclen > nbytes)
break; break;
if (memchr(dirent->name, '/', dirent->namelen) != NULL)
return -EIO;
if (!over) { if (!over) {
/* We fill entries into dstbuf only as much as /* We fill entries into dstbuf only as much as
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment