lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <201712081042.25vrMdbv%fengguang.wu@intel.com>
Date:   Fri, 8 Dec 2017 11:45:31 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Xin Long <lucien.xin@...il.com>
Cc:     kbuild-all@...org, network dev <netdev@...r.kernel.org>,
        linux-sctp@...r.kernel.org,
        Marcelo Ricardo Leitner <marcelo.leitner@...il.com>,
        Neil Horman <nhorman@...driver.com>, davem@...emloft.net
Subject: Re: [PATCH net-next 09/12] sctp: implement renege_events for
 sctp_stream_interleave

Hi Xin,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on net-next/master]

url:    https://github.com/0day-ci/linux/commits/Xin-Long/sctp-Implement-Stream-Interleave-The-I-DATA-Chunk-Supporting-User-Message-Interleaving/20171208-031625
config: x86_64-randconfig-g0-12080821 (attached as .config)
compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings

All warnings (new ones prefixed by >>):

   Cyclomatic Complexity 1 include/linux/spinlock.h:spinlock_check
   Cyclomatic Complexity 1 include/linux/skbuff.h:skb_queue_empty
   Cyclomatic Complexity 2 include/linux/skbuff.h:skb_peek_tail
   Cyclomatic Complexity 1 include/linux/skbuff.h:__skb_queue_head_init
   Cyclomatic Complexity 1 include/linux/skbuff.h:__skb_insert
   Cyclomatic Complexity 1 include/linux/skbuff.h:__skb_queue_splice
   Cyclomatic Complexity 2 include/linux/skbuff.h:skb_queue_splice_tail_init
   Cyclomatic Complexity 1 include/linux/skbuff.h:__skb_queue_before
   Cyclomatic Complexity 1 include/linux/skbuff.h:__skb_queue_tail
   Cyclomatic Complexity 1 include/linux/skbuff.h:__skb_unlink
   Cyclomatic Complexity 1 include/net/net_namespace.h:read_pnet
   Cyclomatic Complexity 1 include/net/sock.h:sk_has_account
   Cyclomatic Complexity 1 include/net/sock.h:sock_net
   Cyclomatic Complexity 1 include/net/busy_poll.h:sk_mark_napi_id
   Cyclomatic Complexity 1 include/net/sctp/ulpevent.h:sctp_skb2event
   Cyclomatic Complexity 2 include/net/sctp/ulpevent.h:sctp_ulpevent_type_enabled
   Cyclomatic Complexity 1 include/net/sctp/structs.h:sctp_sk
   Cyclomatic Complexity 1 include/net/sctp/structs.h:sctp_chunk_stream_no
   Cyclomatic Complexity 6 net//sctp/stream_interleave.c:sctp_validate_data
   Cyclomatic Complexity 15 net//sctp/stream_interleave.c:sctp_intl_retrieve_first
   Cyclomatic Complexity 16 net//sctp/stream_interleave.c:sctp_intl_retrieve_partial
   Cyclomatic Complexity 25 net//sctp/stream_interleave.c:sctp_intl_retrieve_reassembled
   Cyclomatic Complexity 3 include/net/sock.h:sk_mem_reclaim
   Cyclomatic Complexity 2 include/net/sctp/ulpevent.h:sctp_event2skb
   Cyclomatic Complexity 23 net//sctp/stream_interleave.c:sctp_intl_store_reasm
   Cyclomatic Complexity 6 net//sctp/stream_interleave.c:sctp_intl_reasm
   Cyclomatic Complexity 13 net//sctp/stream_interleave.c:sctp_intl_store_ordered
   Cyclomatic Complexity 5 net//sctp/stream_interleave.c:sctp_intl_retrieve_ordered
   Cyclomatic Complexity 3 net//sctp/stream_interleave.c:sctp_intl_order
   Cyclomatic Complexity 2 include/net/sock.h:sk_incoming_cpu_update
   Cyclomatic Complexity 2 include/net/sctp/ulpevent.h:sctp_ulpevent_is_enabled
   Cyclomatic Complexity 9 net//sctp/stream_interleave.c:sctp_enqueue_event
   Cyclomatic Complexity 4 net//sctp/stream_interleave.c:sctp_intl_start_pd
   Cyclomatic Complexity 6 net//sctp/stream_interleave.c:sctp_validate_idata
   Cyclomatic Complexity 8 net//sctp/stream_interleave.c:sctp_chunk_assign_mid
   Cyclomatic Complexity 1 include/linux/skbuff.h:skb_queue_head_init
   Cyclomatic Complexity 6 net//sctp/stream_interleave.c:sctp_ulpevent_idata
   Cyclomatic Complexity 7 net//sctp/stream_interleave.c:sctp_renege_events
   Cyclomatic Complexity 3 net//sctp/stream_interleave.c:sctp_make_idatafrag_empty
   Cyclomatic Complexity 3 net//sctp/stream_interleave.c:sctp_stream_interleave_init
   net//sctp/stream_interleave.c: In function 'sctp_renege_events':
>> net//sctp/stream_interleave.c:581:26: warning: 'sin' may be used uninitialized in this function [-Wmaybe-uninitialized]
           cevent->mid == sin->mid &&
                             ^
   net//sctp/stream_interleave.c:550:32: note: 'sin' was declared here
     struct sctp_stream_in *csin, *sin;
                                   ^

vim +/sin +581 net//sctp/stream_interleave.c

   547	
   548	static struct sctp_ulpevent *sctp_intl_retrieve_first(struct sctp_ulpq *ulpq)
   549	{
   550		struct sctp_stream_in *csin, *sin;
   551		struct sk_buff *first_frag = NULL;
   552		struct sk_buff *last_frag = NULL;
   553		struct sctp_ulpevent *retval;
   554		struct sk_buff *pos;
   555		__u32 next_fsn = 0;
   556		__u16 sid = 0;
   557	
   558		skb_queue_walk(&ulpq->reasm, pos) {
   559			struct sctp_ulpevent *cevent = sctp_skb2event(pos);
   560	
   561			csin = sctp_stream_in(ulpq->asoc, cevent->stream);
   562			if (csin->pd_mode)
   563				continue;
   564	
   565			switch (cevent->msg_flags & SCTP_DATA_FRAG_MASK) {
   566			case SCTP_DATA_FIRST_FRAG:
   567				if (first_frag)
   568					goto out;
   569				if (cevent->mid == csin->mid) {
   570					first_frag = pos;
   571					last_frag = pos;
   572					next_fsn = 0;
   573					sin = csin;
   574					sid = cevent->stream;
   575				}
   576				break;
   577			case SCTP_DATA_MIDDLE_FRAG:
   578				if (!first_frag)
   579					break;
   580				if (cevent->stream == sid &&
 > 581				    cevent->mid == sin->mid &&
   582				    cevent->fsn == next_fsn) {
   583					next_fsn++;
   584					last_frag = pos;
   585				} else {
   586					goto out;
   587				}
   588				break;
   589			case SCTP_DATA_LAST_FRAG:
   590				if (first_frag)
   591					goto out;
   592				break;
   593			default:
   594				break;
   595			}
   596		}
   597	
   598		if (!first_frag)
   599			return NULL;
   600	
   601	out:
   602		retval = sctp_make_reassembled_event(sock_net(ulpq->asoc->base.sk),
   603						     &ulpq->reasm, first_frag,
   604						     last_frag);
   605		if (retval) {
   606			sin->fsn = next_fsn;
   607			sin->pd_mode = 1;
   608		}
   609	
   610		return retval;
   611	}
   612	

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

Download attachment ".config.gz" of type "application/gzip" (35797 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ