diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2021-09-30 14:24:56 +0200 |
---|---|---|
committer | Steve French <stfrench@microsoft.com> | 2021-10-01 03:00:05 +0200 |
commit | 87ffb310d5e8a441721a9d04dfa7c90cd9da3916 (patch) | |
tree | 3d924c129340db845b9c8d7e87e70d876db1d032 | |
parent | ksmbd: fix transform header validation (diff) | |
download | linux-87ffb310d5e8a441721a9d04dfa7c90cd9da3916.tar.xz linux-87ffb310d5e8a441721a9d04dfa7c90cd9da3916.zip |
ksmbd: missing check for NULL in convert_to_nt_pathname()
The kmalloc() does not have a NULL check. This code can be re-written
slightly cleaner to just use the kstrdup().
Fixes: 265fd1991c1d ("ksmbd: use LOOKUP_BENEATH to prevent the out of share access")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Acked-by: Hyunchul Lee <hyc.lee@gmail.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
-rw-r--r-- | fs/ksmbd/misc.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/fs/ksmbd/misc.c b/fs/ksmbd/misc.c index 6a19f4bc692d..60e7ac62c917 100644 --- a/fs/ksmbd/misc.c +++ b/fs/ksmbd/misc.c @@ -162,17 +162,14 @@ char *convert_to_nt_pathname(char *filename) { char *ab_pathname; - if (strlen(filename) == 0) { - ab_pathname = kmalloc(2, GFP_KERNEL); - ab_pathname[0] = '\\'; - ab_pathname[1] = '\0'; - } else { - ab_pathname = kstrdup(filename, GFP_KERNEL); - if (!ab_pathname) - return NULL; + if (strlen(filename) == 0) + filename = "\\"; - ksmbd_conv_path_to_windows(ab_pathname); - } + ab_pathname = kstrdup(filename, GFP_KERNEL); + if (!ab_pathname) + return NULL; + + ksmbd_conv_path_to_windows(ab_pathname); return ab_pathname; } |