NFS: nfs_prime_dcache must validate the filename
Before we try to stash it in the dcache, we need to at least check that the filename passed to us by the server is non-empty and doesn't contain any illegal '\0' or '/' characters. Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:
parent
a1d617d8f1
commit
78d04af499
|
@ -496,6 +496,14 @@ void nfs_prime_dcache(struct dentry *parent, struct nfs_entry *entry)
|
|||
return;
|
||||
if (!(entry->fattr->valid & NFS_ATTR_FATTR_FSID))
|
||||
return;
|
||||
if (filename.len == 0)
|
||||
return;
|
||||
/* Validate that the name doesn't contain any illegal '\0' */
|
||||
if (strnlen(filename.name, filename.len) != filename.len)
|
||||
return;
|
||||
/* ...or '/' */
|
||||
if (strnchr(filename.name, filename.len, '/'))
|
||||
return;
|
||||
if (filename.name[0] == '.') {
|
||||
if (filename.len == 1)
|
||||
return;
|
||||
|
|
Loading…
Reference in New Issue