[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <201609080450.agy94C1p%fengguang.wu@intel.com>
Date: Thu, 8 Sep 2016 04:33:59 +0800
From: kbuild test robot <lkp@...el.com>
To: Lorenzo Colitti <lorenzo@...gle.com>
Cc: kbuild-all@...org, netdev@...r.kernel.org, ek@...gle.com,
eric.dumazet@...il.com, davem@...emloft.net,
dsa@...ulusnetworks.com, Lorenzo Colitti <lorenzo@...gle.com>
Subject: Re: [PATCH net-next] net: inet: diag: expose the socket mark to
privileged processes.
Hi Lorenzo,
[auto build test WARNING on net-next/master]
url: https://github.com/0day-ci/linux/commits/Lorenzo-Colitti/net-inet-diag-expose-the-socket-mark-to-privileged-processes/20160907-181944
config: x86_64-randconfig-s2-09071905 (attached as .config)
compiler: gcc-6 (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
All warnings (new ones prefixed by >>):
In file included from include/uapi/linux/stddef.h:1:0,
from include/linux/stddef.h:4,
from include/uapi/linux/posix_types.h:4,
from include/uapi/linux/types.h:13,
from include/linux/types.h:5,
from include/linux/list.h:4,
from include/linux/module.h:9,
from net/sctp/sctp_diag.c:1:
net/sctp/sctp_diag.c: In function 'inet_sctp_diag_fill':
net/sctp/sctp_diag.c:136:6: error: too few arguments to function 'inet_diag_msg_attrs_fill'
if (inet_diag_msg_attrs_fill(sk, skb, r, ext, user_ns))
^
include/linux/compiler.h:149:30: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^~~~
>> net/sctp/sctp_diag.c:136:2: note: in expansion of macro 'if'
if (inet_diag_msg_attrs_fill(sk, skb, r, ext, user_ns))
^~
In file included from net/sctp/sctp_diag.c:2:0:
include/linux/inet_diag.h:57:5: note: declared here
int inet_diag_msg_attrs_fill(struct sock *sk, struct sk_buff *skb,
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/uapi/linux/stddef.h:1:0,
from include/linux/stddef.h:4,
from include/uapi/linux/posix_types.h:4,
from include/uapi/linux/types.h:13,
from include/linux/types.h:5,
from include/linux/list.h:4,
from include/linux/module.h:9,
from net/sctp/sctp_diag.c:1:
net/sctp/sctp_diag.c:136:6: error: too few arguments to function 'inet_diag_msg_attrs_fill'
if (inet_diag_msg_attrs_fill(sk, skb, r, ext, user_ns))
^
include/linux/compiler.h:149:42: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^~~~
>> net/sctp/sctp_diag.c:136:2: note: in expansion of macro 'if'
if (inet_diag_msg_attrs_fill(sk, skb, r, ext, user_ns))
^~
In file included from net/sctp/sctp_diag.c:2:0:
include/linux/inet_diag.h:57:5: note: declared here
int inet_diag_msg_attrs_fill(struct sock *sk, struct sk_buff *skb,
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/uapi/linux/stddef.h:1:0,
from include/linux/stddef.h:4,
from include/uapi/linux/posix_types.h:4,
from include/uapi/linux/types.h:13,
from include/linux/types.h:5,
from include/linux/list.h:4,
from include/linux/module.h:9,
from net/sctp/sctp_diag.c:1:
net/sctp/sctp_diag.c:136:6: error: too few arguments to function 'inet_diag_msg_attrs_fill'
if (inet_diag_msg_attrs_fill(sk, skb, r, ext, user_ns))
^
include/linux/compiler.h:160:16: note: in definition of macro '__trace_if'
______r = !!(cond); \
^~~~
>> net/sctp/sctp_diag.c:136:2: note: in expansion of macro 'if'
if (inet_diag_msg_attrs_fill(sk, skb, r, ext, user_ns))
^~
In file included from net/sctp/sctp_diag.c:2:0:
include/linux/inet_diag.h:57:5: note: declared here
int inet_diag_msg_attrs_fill(struct sock *sk, struct sk_buff *skb,
^~~~~~~~~~~~~~~~~~~~~~~~
vim +/if +136 net/sctp/sctp_diag.c
8f840e47 Xin Long 2016-04-14 @1 #include <linux/module.h>
8f840e47 Xin Long 2016-04-14 2 #include <linux/inet_diag.h>
8f840e47 Xin Long 2016-04-14 3 #include <linux/sock_diag.h>
8f840e47 Xin Long 2016-04-14 4 #include <net/sctp/sctp.h>
8f840e47 Xin Long 2016-04-14 5
8f840e47 Xin Long 2016-04-14 6 static void sctp_diag_get_info(struct sock *sk, struct inet_diag_msg *r,
8f840e47 Xin Long 2016-04-14 7 void *info);
8f840e47 Xin Long 2016-04-14 8
8f840e47 Xin Long 2016-04-14 9 /* define some functions to make asoc/ep fill look clean */
8f840e47 Xin Long 2016-04-14 10 static void inet_diag_msg_sctpasoc_fill(struct inet_diag_msg *r,
8f840e47 Xin Long 2016-04-14 11 struct sock *sk,
8f840e47 Xin Long 2016-04-14 12 struct sctp_association *asoc)
8f840e47 Xin Long 2016-04-14 13 {
8f840e47 Xin Long 2016-04-14 14 union sctp_addr laddr, paddr;
8f840e47 Xin Long 2016-04-14 15 struct dst_entry *dst;
12474e8e Phil Sutter 2016-08-04 16 struct timer_list *t3_rtx = &asoc->peer.primary_path->T3_rtx_timer;
8f840e47 Xin Long 2016-04-14 17
8f840e47 Xin Long 2016-04-14 18 laddr = list_entry(asoc->base.bind_addr.address_list.next,
8f840e47 Xin Long 2016-04-14 19 struct sctp_sockaddr_entry, list)->a;
8f840e47 Xin Long 2016-04-14 20 paddr = asoc->peer.primary_path->ipaddr;
8f840e47 Xin Long 2016-04-14 21 dst = asoc->peer.primary_path->dst;
8f840e47 Xin Long 2016-04-14 22
8f840e47 Xin Long 2016-04-14 23 r->idiag_family = sk->sk_family;
8f840e47 Xin Long 2016-04-14 24 r->id.idiag_sport = htons(asoc->base.bind_addr.port);
8f840e47 Xin Long 2016-04-14 25 r->id.idiag_dport = htons(asoc->peer.port);
8f840e47 Xin Long 2016-04-14 26 r->id.idiag_if = dst ? dst->dev->ifindex : 0;
8f840e47 Xin Long 2016-04-14 27 sock_diag_save_cookie(sk, r->id.idiag_cookie);
8f840e47 Xin Long 2016-04-14 28
8f840e47 Xin Long 2016-04-14 29 #if IS_ENABLED(CONFIG_IPV6)
8f840e47 Xin Long 2016-04-14 30 if (sk->sk_family == AF_INET6) {
8f840e47 Xin Long 2016-04-14 31 *(struct in6_addr *)r->id.idiag_src = laddr.v6.sin6_addr;
8f840e47 Xin Long 2016-04-14 32 *(struct in6_addr *)r->id.idiag_dst = paddr.v6.sin6_addr;
8f840e47 Xin Long 2016-04-14 33 } else
8f840e47 Xin Long 2016-04-14 34 #endif
8f840e47 Xin Long 2016-04-14 35 {
8f840e47 Xin Long 2016-04-14 36 memset(&r->id.idiag_src, 0, sizeof(r->id.idiag_src));
8f840e47 Xin Long 2016-04-14 37 memset(&r->id.idiag_dst, 0, sizeof(r->id.idiag_dst));
8f840e47 Xin Long 2016-04-14 38
8f840e47 Xin Long 2016-04-14 39 r->id.idiag_src[0] = laddr.v4.sin_addr.s_addr;
8f840e47 Xin Long 2016-04-14 40 r->id.idiag_dst[0] = paddr.v4.sin_addr.s_addr;
8f840e47 Xin Long 2016-04-14 41 }
8f840e47 Xin Long 2016-04-14 42
8f840e47 Xin Long 2016-04-14 43 r->idiag_state = asoc->state;
12474e8e Phil Sutter 2016-08-04 44 if (timer_pending(t3_rtx)) {
8f840e47 Xin Long 2016-04-14 45 r->idiag_timer = SCTP_EVENT_TIMEOUT_T3_RTX;
8f840e47 Xin Long 2016-04-14 46 r->idiag_retrans = asoc->rtx_data_chunks;
12474e8e Phil Sutter 2016-08-04 47 r->idiag_expires = jiffies_to_msecs(t3_rtx->expires - jiffies);
12474e8e Phil Sutter 2016-08-04 48 } else {
12474e8e Phil Sutter 2016-08-04 49 r->idiag_timer = 0;
12474e8e Phil Sutter 2016-08-04 50 r->idiag_retrans = 0;
12474e8e Phil Sutter 2016-08-04 51 r->idiag_expires = 0;
12474e8e Phil Sutter 2016-08-04 52 }
8f840e47 Xin Long 2016-04-14 53 }
8f840e47 Xin Long 2016-04-14 54
8f840e47 Xin Long 2016-04-14 55 static int inet_diag_msg_sctpladdrs_fill(struct sk_buff *skb,
8f840e47 Xin Long 2016-04-14 56 struct list_head *address_list)
8f840e47 Xin Long 2016-04-14 57 {
8f840e47 Xin Long 2016-04-14 58 struct sctp_sockaddr_entry *laddr;
8f840e47 Xin Long 2016-04-14 59 int addrlen = sizeof(struct sockaddr_storage);
8f840e47 Xin Long 2016-04-14 60 int addrcnt = 0;
8f840e47 Xin Long 2016-04-14 61 struct nlattr *attr;
8f840e47 Xin Long 2016-04-14 62 void *info = NULL;
8f840e47 Xin Long 2016-04-14 63
8f840e47 Xin Long 2016-04-14 64 list_for_each_entry_rcu(laddr, address_list, list)
8f840e47 Xin Long 2016-04-14 65 addrcnt++;
8f840e47 Xin Long 2016-04-14 66
8f840e47 Xin Long 2016-04-14 67 attr = nla_reserve(skb, INET_DIAG_LOCALS, addrlen * addrcnt);
8f840e47 Xin Long 2016-04-14 68 if (!attr)
8f840e47 Xin Long 2016-04-14 69 return -EMSGSIZE;
8f840e47 Xin Long 2016-04-14 70
8f840e47 Xin Long 2016-04-14 71 info = nla_data(attr);
8f840e47 Xin Long 2016-04-14 72 list_for_each_entry_rcu(laddr, address_list, list) {
8f840e47 Xin Long 2016-04-14 73 memcpy(info, &laddr->a, addrlen);
8f840e47 Xin Long 2016-04-14 74 info += addrlen;
8f840e47 Xin Long 2016-04-14 75 }
8f840e47 Xin Long 2016-04-14 76
8f840e47 Xin Long 2016-04-14 77 return 0;
8f840e47 Xin Long 2016-04-14 78 }
8f840e47 Xin Long 2016-04-14 79
8f840e47 Xin Long 2016-04-14 80 static int inet_diag_msg_sctpaddrs_fill(struct sk_buff *skb,
8f840e47 Xin Long 2016-04-14 81 struct sctp_association *asoc)
8f840e47 Xin Long 2016-04-14 82 {
8f840e47 Xin Long 2016-04-14 83 int addrlen = sizeof(struct sockaddr_storage);
8f840e47 Xin Long 2016-04-14 84 struct sctp_transport *from;
8f840e47 Xin Long 2016-04-14 85 struct nlattr *attr;
8f840e47 Xin Long 2016-04-14 86 void *info = NULL;
8f840e47 Xin Long 2016-04-14 87
8f840e47 Xin Long 2016-04-14 88 attr = nla_reserve(skb, INET_DIAG_PEERS,
8f840e47 Xin Long 2016-04-14 89 addrlen * asoc->peer.transport_count);
8f840e47 Xin Long 2016-04-14 90 if (!attr)
8f840e47 Xin Long 2016-04-14 91 return -EMSGSIZE;
8f840e47 Xin Long 2016-04-14 92
8f840e47 Xin Long 2016-04-14 93 info = nla_data(attr);
8f840e47 Xin Long 2016-04-14 94 list_for_each_entry(from, &asoc->peer.transport_addr_list,
8f840e47 Xin Long 2016-04-14 95 transports) {
8f840e47 Xin Long 2016-04-14 96 memcpy(info, &from->ipaddr, addrlen);
8f840e47 Xin Long 2016-04-14 97 info += addrlen;
8f840e47 Xin Long 2016-04-14 98 }
8f840e47 Xin Long 2016-04-14 99
8f840e47 Xin Long 2016-04-14 100 return 0;
8f840e47 Xin Long 2016-04-14 101 }
8f840e47 Xin Long 2016-04-14 102
8f840e47 Xin Long 2016-04-14 103 /* sctp asoc/ep fill*/
8f840e47 Xin Long 2016-04-14 104 static int inet_sctp_diag_fill(struct sock *sk, struct sctp_association *asoc,
8f840e47 Xin Long 2016-04-14 105 struct sk_buff *skb,
8f840e47 Xin Long 2016-04-14 106 const struct inet_diag_req_v2 *req,
8f840e47 Xin Long 2016-04-14 107 struct user_namespace *user_ns,
8f840e47 Xin Long 2016-04-14 108 int portid, u32 seq, u16 nlmsg_flags,
8f840e47 Xin Long 2016-04-14 109 const struct nlmsghdr *unlh)
8f840e47 Xin Long 2016-04-14 110 {
8f840e47 Xin Long 2016-04-14 111 struct sctp_endpoint *ep = sctp_sk(sk)->ep;
8f840e47 Xin Long 2016-04-14 112 struct list_head *addr_list;
8f840e47 Xin Long 2016-04-14 113 struct inet_diag_msg *r;
8f840e47 Xin Long 2016-04-14 114 struct nlmsghdr *nlh;
8f840e47 Xin Long 2016-04-14 115 int ext = req->idiag_ext;
8f840e47 Xin Long 2016-04-14 116 struct sctp_infox infox;
8f840e47 Xin Long 2016-04-14 117 void *info = NULL;
8f840e47 Xin Long 2016-04-14 118
8f840e47 Xin Long 2016-04-14 119 nlh = nlmsg_put(skb, portid, seq, unlh->nlmsg_type, sizeof(*r),
8f840e47 Xin Long 2016-04-14 120 nlmsg_flags);
8f840e47 Xin Long 2016-04-14 121 if (!nlh)
8f840e47 Xin Long 2016-04-14 122 return -EMSGSIZE;
8f840e47 Xin Long 2016-04-14 123
8f840e47 Xin Long 2016-04-14 124 r = nlmsg_data(nlh);
8f840e47 Xin Long 2016-04-14 125 BUG_ON(!sk_fullsock(sk));
8f840e47 Xin Long 2016-04-14 126
8f840e47 Xin Long 2016-04-14 127 if (asoc) {
8f840e47 Xin Long 2016-04-14 128 inet_diag_msg_sctpasoc_fill(r, sk, asoc);
8f840e47 Xin Long 2016-04-14 129 } else {
8f840e47 Xin Long 2016-04-14 130 inet_diag_msg_common_fill(r, sk);
8f840e47 Xin Long 2016-04-14 131 r->idiag_state = sk->sk_state;
8f840e47 Xin Long 2016-04-14 132 r->idiag_timer = 0;
8f840e47 Xin Long 2016-04-14 133 r->idiag_retrans = 0;
8f840e47 Xin Long 2016-04-14 134 }
8f840e47 Xin Long 2016-04-14 135
8f840e47 Xin Long 2016-04-14 @136 if (inet_diag_msg_attrs_fill(sk, skb, r, ext, user_ns))
8f840e47 Xin Long 2016-04-14 137 goto errout;
8f840e47 Xin Long 2016-04-14 138
8f840e47 Xin Long 2016-04-14 139 if (ext & (1 << (INET_DIAG_SKMEMINFO - 1))) {
:::::: The code at line 136 was first introduced by commit
:::::: 8f840e47f190cbe61a96945c13e9551048d42cef sctp: add the sctp_diag.c file
:::::: TO: Xin Long <lucien.xin@...il.com>
:::::: CC: David S. Miller <davem@...emloft.net>
---
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/octet-stream" (29858 bytes)
Powered by blists - more mailing lists