]> www.infradead.org Git - users/griffoul/linux.git/commitdiff
cifs: prevent NULL pointer dereference in UTF16 conversion
authorMakar Semyonov <m.semenov@tssltd.ru>
Thu, 4 Sep 2025 12:28:41 +0000 (15:28 +0300)
committerSteve French <stfrench@microsoft.com>
Thu, 4 Sep 2025 16:43:31 +0000 (11:43 -0500)
There can be a NULL pointer dereference bug here. NULL is passed to
__cifs_sfu_make_node without checks, which passes it unchecked to
cifs_strndup_to_utf16, which in turn passes it to
cifs_local_to_utf16_bytes where '*from' is dereferenced, causing a crash.

This patch adds a check for NULL 'src' in cifs_strndup_to_utf16 and
returns NULL early to prevent dereferencing NULL pointer.

Found by Linux Verification Center (linuxtesting.org) with SVACE

Signed-off-by: Makar Semyonov <m.semenov@tssltd.ru>
Cc: stable@vger.kernel.org
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/cifs_unicode.c

index 4cc6e0896fad37c3a50ee7bca838f5dfbf4ea848..f8659d36793f17d4eaf6198eacfa37abd0bcfeca 100644 (file)
@@ -629,6 +629,9 @@ cifs_strndup_to_utf16(const char *src, const int maxlen, int *utf16_len,
        int len;
        __le16 *dst;
 
+       if (!src)
+               return NULL;
+
        len = cifs_local_to_utf16_bytes(src, maxlen, cp);
        len += 2; /* NULL */
        dst = kmalloc(len, GFP_KERNEL);