diff options
author | Steve French <sfrench@us.ibm.com> | 2009-08-31 11:27:26 -0400 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2009-08-31 11:27:26 -0400 |
commit | 2920ee2b47fc8e6aebe1d1956b2725f48fa93cc5 (patch) | |
tree | d6c65477946df8f136800e813da52df55e65919c /fs/cifs/cifssmb.c | |
parent | 7b2aa037e878c939676675969983284a02958ae3 (diff) |
[CIFS] potential NULL dereference in parse_DFS_referrals()
memory allocation may fail, prevent a NULL dereference
Pointed out by Roel Kluin
CC: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/cifssmb.c')
-rw-r--r-- | fs/cifs/cifssmb.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c index 1866bc2927d..5f0b80d3992 100644 --- a/fs/cifs/cifssmb.c +++ b/fs/cifs/cifssmb.c | |||
@@ -3961,6 +3961,10 @@ parse_DFS_referrals(TRANSACTION2_GET_DFS_REFER_RSP *pSMBr, | |||
3961 | if (is_unicode) { | 3961 | if (is_unicode) { |
3962 | __le16 *tmp = kmalloc(strlen(searchName)*2 + 2, | 3962 | __le16 *tmp = kmalloc(strlen(searchName)*2 + 2, |
3963 | GFP_KERNEL); | 3963 | GFP_KERNEL); |
3964 | if (tmp == NULL) { | ||
3965 | rc = -ENOMEM; | ||
3966 | goto parse_DFS_referrals_exit; | ||
3967 | } | ||
3964 | cifsConvertToUCS((__le16 *) tmp, searchName, | 3968 | cifsConvertToUCS((__le16 *) tmp, searchName, |
3965 | PATH_MAX, nls_codepage, remap); | 3969 | PATH_MAX, nls_codepage, remap); |
3966 | node->path_consumed = cifs_ucs2_bytes(tmp, | 3970 | node->path_consumed = cifs_ucs2_bytes(tmp, |