diff options
Diffstat (limited to '')
-rw-r--r-- | fs/cifs/misc.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c index dd67f56ea..c9ebfff51 100644 --- a/fs/cifs/misc.c +++ b/fs/cifs/misc.c @@ -338,6 +338,10 @@ checkSMB(char *buf, unsigned int total_read, struct TCP_Server_Info *server) cifs_dbg(VFS, "Length less than smb header size\n"); } return -EIO; + } else if (total_read < sizeof(*smb) + 2 * smb->WordCount) { + cifs_dbg(VFS, "%s: can't read BCC due to invalid WordCount(%u)\n", + __func__, smb->WordCount); + return -EIO; } /* otherwise, there is enough to get to the BCC */ |