]> err.no Git - linux-2.6/commitdiff
[CIFS] Fix missing entries in search results when very long file names and
authorSteve French <sfrench@us.ibm.com>
Wed, 3 Aug 2005 04:31:05 +0000 (21:31 -0700)
committerSteve French <sfrench@us.ibm.com>
Wed, 3 Aug 2005 04:31:05 +0000 (21:31 -0700)
more than 50 (or so) of such long search entries in the directory.  FindNext
could send corrupt last byte of resume name when resume key was a few hundred
bytes long file name or longer.

Fixes Samba Bug # 2932

Signed-off-by: Steve French (sfrench@us.ibm.com)
fs/cifs/cifssmb.c

index fbe651858c886c03304b94737e24eb40c6d9d546..e555cb5cf493766d25a9f48f78abdd7649d41a73 100644 (file)
@@ -2628,6 +2628,9 @@ int CIFSFindNext(const int xid, struct cifsTconInfo *tcon,
        if(name_len < PATH_MAX) {
                memcpy(pSMB->ResumeFileName, psrch_inf->presume_name, name_len);
                byte_count += name_len;
+               /* 14 byte parm len above enough for 2 byte null terminator */
+               pSMB->ResumeFileName[name_len] = 0;
+               pSMB->ResumeFileName[name_len+1] = 0;
        } else {
                rc = -EINVAL;
                goto FNext2_err_exit;