nfs: include space for the NUL in root path
In root_nfs_name() it does the following: if (strlen(buf) + strlen(cp) > NFS_MAXPATHLEN) { printk(KERN_ERR "Root-NFS: Pathname for remote directory too long.\n"); return -1; } sprintf(nfs_export_path, buf, cp); In the original code if (strlen(buf) + strlen(cp) == NFS_MAXPATHLEN) then the sprintf() would lead to an overflow. Generally the rest of the code assumes that the path can have NFS_MAXPATHLEN (1024) characters and a NUL terminator so the fix is to add space to the nfs_export_path[] buffer. Signed-off-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
Родитель
a2dccdb205
Коммит
674b222292
|
@ -105,7 +105,7 @@ static char nfs_root_name[256] __initdata = "";
|
||||||
static __be32 servaddr __initdata = 0;
|
static __be32 servaddr __initdata = 0;
|
||||||
|
|
||||||
/* Name of directory to mount */
|
/* Name of directory to mount */
|
||||||
static char nfs_export_path[NFS_MAXPATHLEN] __initdata = { 0, };
|
static char nfs_export_path[NFS_MAXPATHLEN + 1] __initdata = { 0, };
|
||||||
|
|
||||||
/* NFS-related data */
|
/* NFS-related data */
|
||||||
static struct nfs_mount_data nfs_data __initdata = { 0, };/* NFS mount info */
|
static struct nfs_mount_data nfs_data __initdata = { 0, };/* NFS mount info */
|
||||||
|
|
Загрузка…
Ссылка в новой задаче