diff options
author | Ronnie Sahlberg <lsahlber@redhat.com> | 2021-08-10 16:33:55 +1000 |
---|---|---|
committer | Steve French <stfrench@microsoft.com> | 2021-08-10 10:45:50 -0500 |
commit | 981567bd965329df7e64b13e92a54da816c1e0a4 (patch) | |
tree | c33f98b3ad15f17c7570f21711df75e7e310cc98 | |
parent | 7d3fc01796fc895e5fcce45c994c5a8db8120a8d (diff) | |
download | linux-981567bd965329df7e64b13e92a54da816c1e0a4.tar.gz linux-981567bd965329df7e64b13e92a54da816c1e0a4.tar.bz2 linux-981567bd965329df7e64b13e92a54da816c1e0a4.zip |
cifs: use the correct max-length for dentry_path_raw()
RHBZ: 1972502
PATH_MAX is 4096 but PAGE_SIZE can be >4096 on some architectures
such as ppc and would thus write beyond the end of the actual object.
Cc: <stable@vger.kernel.org>
Reported-by: Xiaoli Feng <xifeng@redhat.com>
Suggested-by: Brian foster <bfoster@redhat.com>
Reviewed-by: Paulo Alcantara (SUSE) <pc@cjr.nz>
Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
-rw-r--r-- | fs/cifs/dir.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c index 79402ca0ddfa..5f8a302ffcb2 100644 --- a/fs/cifs/dir.c +++ b/fs/cifs/dir.c @@ -100,7 +100,7 @@ build_path_from_dentry_optional_prefix(struct dentry *direntry, void *page, if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_USE_PREFIX_PATH) pplen = cifs_sb->prepath ? strlen(cifs_sb->prepath) + 1 : 0; - s = dentry_path_raw(direntry, page, PAGE_SIZE); + s = dentry_path_raw(direntry, page, PATH_MAX); if (IS_ERR(s)) return s; if (!s[1]) // for root we want "", not "/" |