[cifs:for-next 17/17] fs/cifs/smb2misc.c:194:3: note: in expansion of macro 'cifs_dbg'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   git://git.samba.org/sfrench/cifs-2.6.git for-next
head:   4637baa7e70c1e1f7dcaeae562f71a35b2297dc3
commit: 4637baa7e70c1e1f7dcaeae562f71a35b2297dc3 [17/17] cifs: add server->vals->header_preamble_size
config: x86_64-randconfig-x010-201813 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        git checkout 4637baa7e70c1e1f7dcaeae562f71a35b2297dc3
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All warnings (new ones prefixed by >>):

   In file included from include/linux/kernel.h:14:0,
                    from include/linux/list.h:9,
                    from include/linux/preempt.h:11,
                    from include/linux/hardirq.h:5,
                    from include/net/sock.h:43,
                    from fs/cifs/smb2pdu.h:27,
                    from fs/cifs/smb2misc.c:24:
   fs/cifs/smb2misc.c: In function 'smb2_check_message':
   include/linux/kern_levels.h:5:18: warning: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'size_t {aka long unsigned int}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/printk.h:136:10: note: in definition of macro 'no_printk'
      printk(fmt, ##__VA_ARGS__);  \
             ^~~
   include/linux/kern_levels.h:15:20: note: in expansion of macro 'KERN_SOH'
    #define KERN_DEBUG KERN_SOH "7" /* debug-level messages */
                       ^~~~~~~~
   include/linux/printk.h:471:12: note: in expansion of macro 'KERN_DEBUG'
     no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
               ^~~~~~~~~~
>> fs/cifs/cifs_debug.h:55:3: note: in expansion of macro 'pr_debug_ratelimited'
      pr_debug_ratelimited("%s: "    \
      ^~~~~~~~~~~~~~~~~~~~
>> fs/cifs/smb2misc.c:194:3: note: in expansion of macro 'cifs_dbg'
      cifs_dbg(VFS, "Total length %u RFC1002 length %u mismatch mid %llu\n",
      ^~~~~~~~
   fs/cifs/smb2misc.c:194:50: note: format string is defined here
      cifs_dbg(VFS, "Total length %u RFC1002 length %u mismatch mid %llu\n",
                                                    ~^
                                                    %lu
   In file included from fs/cifs/smb2misc.c:28:0:
>> fs/cifs/smb2misc.c:194:17: warning: format '%u' expects argument of type 'unsigned int', but argument 3 has type 'size_t {aka long unsigned int}' [-Wformat=]
      cifs_dbg(VFS, "Total length %u RFC1002 length %u mismatch mid %llu\n",
                    ^
        length, srvr->vals->header_preamble_size + len, mid);
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/cifs/cifs_debug.h:58:16: note: in definition of macro 'cifs_dbg'
      cifs_vfs_err(fmt, ##__VA_ARGS__);   \
                   ^~~
   In file included from include/linux/kernel.h:14:0,
                    from include/linux/list.h:9,
                    from include/linux/preempt.h:11,
                    from include/linux/hardirq.h:5,
                    from include/net/sock.h:43,
                    from fs/cifs/smb2pdu.h:27,
                    from fs/cifs/smb2misc.c:24:
   include/linux/kern_levels.h:5:18: warning: format '%u' expects argument of type 'unsigned int', but argument 3 has type 'size_t {aka long unsigned int}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/printk.h:136:10: note: in definition of macro 'no_printk'
      printk(fmt, ##__VA_ARGS__);  \
             ^~~
   include/linux/kern_levels.h:15:20: note: in expansion of macro 'KERN_SOH'
    #define KERN_DEBUG KERN_SOH "7" /* debug-level messages */
                       ^~~~~~~~
   include/linux/printk.h:471:12: note: in expansion of macro 'KERN_DEBUG'
     no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
               ^~~~~~~~~~
   fs/cifs/cifs_debug.h:60:3: note: in expansion of macro 'pr_debug_ratelimited'
      pr_debug_ratelimited(fmt, ##__VA_ARGS__);  \
      ^~~~~~~~~~~~~~~~~~~~
>> fs/cifs/smb2misc.c:194:3: note: in expansion of macro 'cifs_dbg'
      cifs_dbg(VFS, "Total length %u RFC1002 length %u mismatch mid %llu\n",
      ^~~~~~~~
   fs/cifs/smb2misc.c:194:50: note: format string is defined here
      cifs_dbg(VFS, "Total length %u RFC1002 length %u mismatch mid %llu\n",
                                                    ~^
                                                    %lu
   In file included from include/linux/kernel.h:14:0,
                    from include/linux/list.h:9,
                    from include/linux/preempt.h:11,
                    from include/linux/hardirq.h:5,
                    from include/net/sock.h:43,
                    from fs/cifs/smb2pdu.h:27,
                    from fs/cifs/smb2misc.c:24:
   include/linux/kern_levels.h:5:18: warning: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'size_t {aka long unsigned int}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/printk.h:136:10: note: in definition of macro 'no_printk'
      printk(fmt, ##__VA_ARGS__);  \
             ^~~
   include/linux/kern_levels.h:15:20: note: in expansion of macro 'KERN_SOH'
    #define KERN_DEBUG KERN_SOH "7" /* debug-level messages */
                       ^~~~~~~~
   include/linux/printk.h:471:12: note: in expansion of macro 'KERN_DEBUG'
     no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
               ^~~~~~~~~~
>> fs/cifs/cifs_debug.h:55:3: note: in expansion of macro 'pr_debug_ratelimited'
      pr_debug_ratelimited("%s: "    \
      ^~~~~~~~~~~~~~~~~~~~
   fs/cifs/smb2misc.c:202:3: note: in expansion of macro 'cifs_dbg'
      cifs_dbg(FYI, "Calculated size %u length %u mismatch mid %llu\n",
      ^~~~~~~~
   fs/cifs/smb2misc.c:202:45: note: format string is defined here
      cifs_dbg(FYI, "Calculated size %u length %u mismatch mid %llu\n",
                                               ~^
                                               %lu
   In file included from fs/cifs/smb2misc.c:28:0:
   fs/cifs/smb2misc.c:202:17: warning: format '%u' expects argument of type 'unsigned int', but argument 3 has type 'size_t {aka long unsigned int}' [-Wformat=]
      cifs_dbg(FYI, "Calculated size %u length %u mismatch mid %llu\n",
                    ^
        clc_len, srvr->vals->header_preamble_size + len, mid);
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/cifs/cifs_debug.h:58:16: note: in definition of macro 'cifs_dbg'
      cifs_vfs_err(fmt, ##__VA_ARGS__);   \
                   ^~~
   In file included from include/linux/kernel.h:14:0,
                    from include/linux/list.h:9,
                    from include/linux/preempt.h:11,
                    from include/linux/hardirq.h:5,
                    from include/net/sock.h:43,
                    from fs/cifs/smb2pdu.h:27,
                    from fs/cifs/smb2misc.c:24:
   include/linux/kern_levels.h:5:18: warning: format '%u' expects argument of type 'unsigned int', but argument 3 has type 'size_t {aka long unsigned int}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/printk.h:136:10: note: in definition of macro 'no_printk'
      printk(fmt, ##__VA_ARGS__);  \
             ^~~
   include/linux/kern_levels.h:15:20: note: in expansion of macro 'KERN_SOH'
    #define KERN_DEBUG KERN_SOH "7" /* debug-level messages */
                       ^~~~~~~~
   include/linux/printk.h:471:12: note: in expansion of macro 'KERN_DEBUG'
     no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
               ^~~~~~~~~~
   fs/cifs/cifs_debug.h:60:3: note: in expansion of macro 'pr_debug_ratelimited'
      pr_debug_ratelimited(fmt, ##__VA_ARGS__);  \
      ^~~~~~~~~~~~~~~~~~~~
   fs/cifs/smb2misc.c:202:3: note: in expansion of macro 'cifs_dbg'
      cifs_dbg(FYI, "Calculated size %u length %u mismatch mid %llu\n",
      ^~~~~~~~
   fs/cifs/smb2misc.c:202:45: note: format string is defined here
      cifs_dbg(FYI, "Calculated size %u length %u mismatch mid %llu\n",
                                               ~^
                                               %lu
   In file included from include/linux/kernel.h:14:0,
                    from include/linux/list.h:9,
                    from include/linux/preempt.h:11,
                    from include/linux/hardirq.h:5,
                    from include/net/sock.h:43,
                    from fs/cifs/smb2pdu.h:27,
                    from fs/cifs/smb2misc.c:24:
   include/linux/kern_levels.h:5:18: warning: format '%d' expects argument of type 'int', but argument 3 has type 'size_t {aka long unsigned int}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/printk.h:354:10: note: in definition of macro 'printk_once'
      printk(fmt, ##__VA_ARGS__);   \
             ^~~
   include/linux/kern_levels.h:12:22: note: in expansion of macro 'KERN_SOH'
    #define KERN_WARNING KERN_SOH "4" /* warning conditions */
                         ^~~~~~~~
>> fs/cifs/smb2misc.c:223:16: note: in expansion of macro 'KERN_WARNING'
       printk_once(KERN_WARNING
                   ^~~~~~~~~~~~
   fs/cifs/smb2misc.c:224:47: note: format string is defined here
        "SMB2 server sent bad RFC1001 len %d not %d\n",
                                                 ~^
                                                 %ld
   Cyclomatic Complexity 5 include/linux/compiler.h:__write_once_size
   Cyclomatic Complexity 2 arch/x86/include/asm/bitops.h:set_bit
   Cyclomatic Complexity 2 arch/x86/include/asm/bitops.h:clear_bit
   Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:fls64
   Cyclomatic Complexity 1 include/linux/log2.h:__ilog2_u64
   Cyclomatic Complexity 1 include/linux/list.h:INIT_LIST_HEAD
   Cyclomatic Complexity 1 include/asm-generic/getorder.h:__get_order
   Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:atomic_inc
   Cyclomatic Complexity 1 include/linux/spinlock.h:spin_lock
   Cyclomatic Complexity 1 include/linux/spinlock.h:spin_unlock
   Cyclomatic Complexity 1 include/linux/workqueue.h:__init_work
   Cyclomatic Complexity 1 include/linux/kasan.h:kasan_kmalloc
   Cyclomatic Complexity 28 include/linux/slab.h:kmalloc_index
   Cyclomatic Complexity 1 include/linux/slab.h:kmem_cache_alloc_trace
   Cyclomatic Complexity 1 include/linux/slab.h:kmalloc_order_trace
   Cyclomatic Complexity 68 include/linux/slab.h:kmalloc_large
   Cyclomatic Complexity 5 include/linux/slab.h:kmalloc
   Cyclomatic Complexity 1 include/linux/slab.h:kzalloc
   Cyclomatic Complexity 1 include/linux/dcache.h:d_inode
   Cyclomatic Complexity 1 fs/cifs/cifsglob.h:tlink_tcon
   Cyclomatic Complexity 1 fs/cifs/smb2glob.h:get_sync_hdr
   Cyclomatic Complexity 7 fs/cifs/smb2misc.c:check_smb2_hdr
   Cyclomatic Complexity 1 include/linux/err.h:IS_ERR
   Cyclomatic Complexity 3 fs/cifs/cifsglob.h:cifs_get_tlink
   Cyclomatic Complexity 1 fs/cifs/cifsglob.h:get_rfc1002_length
   Cyclomatic Complexity 3 fs/cifs/smb2misc.c:cifs_ses_oplock_break
   Cyclomatic Complexity 2 fs/cifs/cifsglob.h:CIFS_I
   Cyclomatic Complexity 1 include/linux/workqueue.h:queue_work
   Cyclomatic Complexity 14 fs/cifs/smb2misc.c:smb2_tcon_has_lease
   Cyclomatic Complexity 11 fs/cifs/smb2misc.c:smb2_is_valid_lease_break
   Cyclomatic Complexity 2 fs/cifs/smb2misc.c:smb2_cancelled_close_fid
   Cyclomatic Complexity 16 fs/cifs/smb2misc.c:smb2_get_data_area_len
   Cyclomatic Complexity 6 fs/cifs/smb2misc.c:smb2_calc_size
   Cyclomatic Complexity 32 fs/cifs/smb2misc.c:smb2_check_message
   Cyclomatic Complexity 4 fs/cifs/smb2misc.c:cifs_convert_path_to_utf16
   Cyclomatic Complexity 4 fs/cifs/smb2misc.c:smb2_get_lease_state
   Cyclomatic Complexity 20 fs/cifs/smb2misc.c:smb2_is_valid_oplock_break
   Cyclomatic Complexity 5 fs/cifs/smb2misc.c:smb2_handle_cancelled_mid

vim +/cifs_dbg +194 fs/cifs/smb2misc.c

093b2bda Pavel Shilovsky 2011-06-08   95  
093b2bda Pavel Shilovsky 2011-06-08   96  int
373512ec Steve French    2015-12-18   97  smb2_check_message(char *buf, unsigned int length, struct TCP_Server_Info *srvr)
093b2bda Pavel Shilovsky 2011-06-08   98  {
31473fc4 Pavel Shilovsky 2016-10-24   99  	struct smb2_pdu *pdu = (struct smb2_pdu *)buf;
31473fc4 Pavel Shilovsky 2016-10-24  100  	struct smb2_hdr *hdr = &pdu->hdr;
31473fc4 Pavel Shilovsky 2016-10-24  101  	struct smb2_sync_hdr *shdr = get_sync_hdr(buf);
373512ec Steve French    2015-12-18  102  	__u64 mid;
093b2bda Pavel Shilovsky 2011-06-08  103  	__u32 len = get_rfc1002_length(buf);
093b2bda Pavel Shilovsky 2011-06-08  104  	__u32 clc_len;  /* calculated length */
093b2bda Pavel Shilovsky 2011-06-08  105  	int command;
093b2bda Pavel Shilovsky 2011-06-08  106  
093b2bda Pavel Shilovsky 2011-06-08  107  	/* BB disable following printk later */
f96637be Joe Perches     2013-05-04  108  	cifs_dbg(FYI, "%s length: 0x%x, smb_buf_length: 0x%x\n",
f96637be Joe Perches     2013-05-04  109  		 __func__, length, len);
093b2bda Pavel Shilovsky 2011-06-08  110  
093b2bda Pavel Shilovsky 2011-06-08  111  	/*
093b2bda Pavel Shilovsky 2011-06-08  112  	 * Add function to do table lookup of StructureSize by command
093b2bda Pavel Shilovsky 2011-06-08  113  	 * ie Validate the wct via smb2_struct_sizes table above
093b2bda Pavel Shilovsky 2011-06-08  114  	 */
093b2bda Pavel Shilovsky 2011-06-08  115  
31473fc4 Pavel Shilovsky 2016-10-24  116  	if (shdr->ProtocolId == SMB2_TRANSFORM_PROTO_NUM) {
373512ec Steve French    2015-12-18  117  		struct smb2_transform_hdr *thdr =
373512ec Steve French    2015-12-18  118  			(struct smb2_transform_hdr *)buf;
373512ec Steve French    2015-12-18  119  		struct cifs_ses *ses = NULL;
373512ec Steve French    2015-12-18  120  		struct list_head *tmp;
373512ec Steve French    2015-12-18  121  
373512ec Steve French    2015-12-18  122  		/* decrypt frame now that it is completely read in */
373512ec Steve French    2015-12-18  123  		spin_lock(&cifs_tcp_ses_lock);
373512ec Steve French    2015-12-18  124  		list_for_each(tmp, &srvr->smb_ses_list) {
373512ec Steve French    2015-12-18  125  			ses = list_entry(tmp, struct cifs_ses, smb_ses_list);
373512ec Steve French    2015-12-18  126  			if (ses->Suid == thdr->SessionId)
373512ec Steve French    2015-12-18  127  				break;
373512ec Steve French    2015-12-18  128  
373512ec Steve French    2015-12-18  129  			ses = NULL;
373512ec Steve French    2015-12-18  130  		}
373512ec Steve French    2015-12-18  131  		spin_unlock(&cifs_tcp_ses_lock);
373512ec Steve French    2015-12-18  132  		if (ses == NULL) {
373512ec Steve French    2015-12-18  133  			cifs_dbg(VFS, "no decryption - session id not found\n");
373512ec Steve French    2015-12-18  134  			return 1;
373512ec Steve French    2015-12-18  135  		}
373512ec Steve French    2015-12-18  136  	}
373512ec Steve French    2015-12-18  137  
31473fc4 Pavel Shilovsky 2016-10-24  138  	mid = le64_to_cpu(shdr->MessageId);
74112860 Pavel Shilovsky 2012-07-27  139  	if (length < sizeof(struct smb2_pdu)) {
31473fc4 Pavel Shilovsky 2016-10-24  140  		if ((length >= sizeof(struct smb2_hdr))
31473fc4 Pavel Shilovsky 2016-10-24  141  		    && (shdr->Status != 0)) {
093b2bda Pavel Shilovsky 2011-06-08  142  			pdu->StructureSize2 = 0;
093b2bda Pavel Shilovsky 2011-06-08  143  			/*
093b2bda Pavel Shilovsky 2011-06-08  144  			 * As with SMB/CIFS, on some error cases servers may
093b2bda Pavel Shilovsky 2011-06-08  145  			 * not return wct properly
093b2bda Pavel Shilovsky 2011-06-08  146  			 */
093b2bda Pavel Shilovsky 2011-06-08  147  			return 0;
093b2bda Pavel Shilovsky 2011-06-08  148  		} else {
f96637be Joe Perches     2013-05-04  149  			cifs_dbg(VFS, "Length less than SMB header size\n");
093b2bda Pavel Shilovsky 2011-06-08  150  		}
093b2bda Pavel Shilovsky 2011-06-08  151  		return 1;
093b2bda Pavel Shilovsky 2011-06-08  152  	}
4637baa7 Ronnie Sahlberg 2018-03-31  153  	if (len > CIFSMaxBufSize + MAX_SMB2_HDR_SIZE -
4637baa7 Ronnie Sahlberg 2018-03-31  154  	    srvr->vals->header_preamble_size) {
f96637be Joe Perches     2013-05-04  155  		cifs_dbg(VFS, "SMB length greater than maximum, mid=%llu\n",
f96637be Joe Perches     2013-05-04  156  			 mid);
093b2bda Pavel Shilovsky 2011-06-08  157  		return 1;
093b2bda Pavel Shilovsky 2011-06-08  158  	}
093b2bda Pavel Shilovsky 2011-06-08  159  
31473fc4 Pavel Shilovsky 2016-10-24  160  	if (check_smb2_hdr(shdr, mid))
093b2bda Pavel Shilovsky 2011-06-08  161  		return 1;
093b2bda Pavel Shilovsky 2011-06-08  162  
31473fc4 Pavel Shilovsky 2016-10-24  163  	if (shdr->StructureSize != SMB2_HEADER_STRUCTURE_SIZE) {
f96637be Joe Perches     2013-05-04  164  		cifs_dbg(VFS, "Illegal structure size %u\n",
31473fc4 Pavel Shilovsky 2016-10-24  165  			 le16_to_cpu(shdr->StructureSize));
093b2bda Pavel Shilovsky 2011-06-08  166  		return 1;
093b2bda Pavel Shilovsky 2011-06-08  167  	}
093b2bda Pavel Shilovsky 2011-06-08  168  
31473fc4 Pavel Shilovsky 2016-10-24  169  	command = le16_to_cpu(shdr->Command);
093b2bda Pavel Shilovsky 2011-06-08  170  	if (command >= NUMBER_OF_SMB2_COMMANDS) {
f96637be Joe Perches     2013-05-04  171  		cifs_dbg(VFS, "Illegal SMB2 command %d\n", command);
093b2bda Pavel Shilovsky 2011-06-08  172  		return 1;
093b2bda Pavel Shilovsky 2011-06-08  173  	}
093b2bda Pavel Shilovsky 2011-06-08  174  
093b2bda Pavel Shilovsky 2011-06-08  175  	if (smb2_rsp_struct_sizes[command] != pdu->StructureSize2) {
31473fc4 Pavel Shilovsky 2016-10-24  176  		if (command != SMB2_OPLOCK_BREAK_HE && (shdr->Status == 0 ||
983c88a4 Pavel Shilovsky 2012-09-18  177  		    pdu->StructureSize2 != SMB2_ERROR_STRUCTURE_SIZE2)) {
093b2bda Pavel Shilovsky 2011-06-08  178  			/* error packets have 9 byte structure size */
f96637be Joe Perches     2013-05-04  179  			cifs_dbg(VFS, "Illegal response size %u for command %d\n",
093b2bda Pavel Shilovsky 2011-06-08  180  				 le16_to_cpu(pdu->StructureSize2), command);
093b2bda Pavel Shilovsky 2011-06-08  181  			return 1;
31473fc4 Pavel Shilovsky 2016-10-24  182  		} else if (command == SMB2_OPLOCK_BREAK_HE
31473fc4 Pavel Shilovsky 2016-10-24  183  			   && (shdr->Status == 0)
0822f514 Pavel Shilovsky 2012-09-19  184  			   && (le16_to_cpu(pdu->StructureSize2) != 44)
0822f514 Pavel Shilovsky 2012-09-19  185  			   && (le16_to_cpu(pdu->StructureSize2) != 36)) {
0822f514 Pavel Shilovsky 2012-09-19  186  			/* special case for SMB2.1 lease break message */
f96637be Joe Perches     2013-05-04  187  			cifs_dbg(VFS, "Illegal response size %d for oplock break\n",
0822f514 Pavel Shilovsky 2012-09-19  188  				 le16_to_cpu(pdu->StructureSize2));
0822f514 Pavel Shilovsky 2012-09-19  189  			return 1;
093b2bda Pavel Shilovsky 2011-06-08  190  		}
093b2bda Pavel Shilovsky 2011-06-08  191  	}
093b2bda Pavel Shilovsky 2011-06-08  192  
4637baa7 Ronnie Sahlberg 2018-03-31  193  	if (srvr->vals->header_preamble_size + len != length) {
f96637be Joe Perches     2013-05-04 @194  		cifs_dbg(VFS, "Total length %u RFC1002 length %u mismatch mid %llu\n",
4637baa7 Ronnie Sahlberg 2018-03-31  195  			 length, srvr->vals->header_preamble_size + len, mid);
093b2bda Pavel Shilovsky 2011-06-08  196  		return 1;
093b2bda Pavel Shilovsky 2011-06-08  197  	}
093b2bda Pavel Shilovsky 2011-06-08  198  
093b2bda Pavel Shilovsky 2011-06-08  199  	clc_len = smb2_calc_size(hdr);
093b2bda Pavel Shilovsky 2011-06-08  200  
4637baa7 Ronnie Sahlberg 2018-03-31  201  	if (srvr->vals->header_preamble_size + len != clc_len) {
f96637be Joe Perches     2013-05-04  202  		cifs_dbg(FYI, "Calculated size %u length %u mismatch mid %llu\n",
4637baa7 Ronnie Sahlberg 2018-03-31  203  			 clc_len, srvr->vals->header_preamble_size + len, mid);
b42bf888 Pavel Shilovsky 2013-08-14  204  		/* create failed on symlink */
b42bf888 Pavel Shilovsky 2013-08-14  205  		if (command == SMB2_CREATE_HE &&
31473fc4 Pavel Shilovsky 2016-10-24  206  		    shdr->Status == STATUS_STOPPED_ON_SYMLINK)
b42bf888 Pavel Shilovsky 2013-08-14  207  			return 0;
983c88a4 Pavel Shilovsky 2012-09-18  208  		/* Windows 7 server returns 24 bytes more */
4637baa7 Ronnie Sahlberg 2018-03-31  209  		if (clc_len + 24 - srvr->vals->header_preamble_size == len && command == SMB2_OPLOCK_BREAK_HE)
983c88a4 Pavel Shilovsky 2012-09-18  210  			return 0;
754789a1 Steve French    2014-08-15  211  		/* server can return one byte more due to implied bcc[0] */
4637baa7 Ronnie Sahlberg 2018-03-31  212  		if (clc_len == srvr->vals->header_preamble_size + len + 1)
74112860 Pavel Shilovsky 2012-07-27  213  			return 0;
754789a1 Steve French    2014-08-15  214  
754789a1 Steve French    2014-08-15  215  		/*
754789a1 Steve French    2014-08-15  216  		 * MacOS server pads after SMB2.1 write response with 3 bytes
754789a1 Steve French    2014-08-15  217  		 * of junk. Other servers match RFC1001 len to actual
754789a1 Steve French    2014-08-15  218  		 * SMB2/SMB3 frame length (header + smb2 response specific data)
754789a1 Steve French    2014-08-15  219  		 * Log the server error (once), but allow it and continue
754789a1 Steve French    2014-08-15  220  		 * since the frame is parseable.
754789a1 Steve French    2014-08-15  221  		 */
4637baa7 Ronnie Sahlberg 2018-03-31  222  		if (clc_len < srvr->vals->header_preamble_size /* RFC1001 header size */ + len) {
754789a1 Steve French    2014-08-15 @223  			printk_once(KERN_WARNING
754789a1 Steve French    2014-08-15  224  				"SMB2 server sent bad RFC1001 len %d not %d\n",
4637baa7 Ronnie Sahlberg 2018-03-31  225  				len, clc_len - srvr->vals->header_preamble_size);
754789a1 Steve French    2014-08-15  226  			return 0;
754789a1 Steve French    2014-08-15  227  		}
754789a1 Steve French    2014-08-15  228  
093b2bda Pavel Shilovsky 2011-06-08  229  		return 1;
093b2bda Pavel Shilovsky 2011-06-08  230  	}
093b2bda Pavel Shilovsky 2011-06-08  231  	return 0;
093b2bda Pavel Shilovsky 2011-06-08  232  }
093b2bda Pavel Shilovsky 2011-06-08  233  

:::::: The code at line 194 was first introduced by commit
:::::: f96637be081141d6f8813429499f164260b49d70 [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg

:::::: TO: Joe Perches <joe@xxxxxxxxxxx>
:::::: CC: Steve French <smfrench@xxxxxxxxx>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux