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: <202410261713.GIaQEsJC-lkp@intel.com>
Date: Sat, 26 Oct 2024 18:00:12 +0800
From: kernel test robot <lkp@...el.com>
To: Justin Iurman <justin.iurman@...ege.be>, netdev@...r.kernel.org
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
	davem@...emloft.net, dsahern@...nel.org, edumazet@...gle.com,
	kuba@...nel.org, pabeni@...hat.com, horms@...nel.org,
	linux-kernel@...r.kernel.org, justin.iurman@...ege.be
Subject: Re: [PATCH net-next 2/3] net: ipv6: seg6_iptunnel: mitigate
 2-realloc issue

Hi Justin,

kernel test robot noticed the following build errors:

[auto build test ERROR on net-next/main]

url:    https://github.com/intel-lab-lkp/linux/commits/Justin-Iurman/net-ipv6-ioam6_iptunnel-mitigate-2-realloc-issue/20241025-214849
base:   net-next/main
patch link:    https://lore.kernel.org/r/20241025133727.27742-3-justin.iurman%40uliege.be
patch subject: [PATCH net-next 2/3] net: ipv6: seg6_iptunnel: mitigate 2-realloc issue
config: i386-buildonly-randconfig-004-20241026 (https://download.01.org/0day-ci/archive/20241026/202410261713.GIaQEsJC-lkp@intel.com/config)
compiler: clang version 19.1.2 (https://github.com/llvm/llvm-project 7ba7d8e2f7b6445b60679da826210cdde29eaf8b)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241026/202410261713.GIaQEsJC-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410261713.GIaQEsJC-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

   In file included from net/ipv6/seg6_iptunnel.c:10:
   In file included from include/linux/skbuff.h:17:
   In file included from include/linux/bvec.h:10:
   In file included from include/linux/highmem.h:8:
   In file included from include/linux/cacheflush.h:5:
   In file included from arch/x86/include/asm/cacheflush.h:5:
   In file included from include/linux/mm.h:2213:
   include/linux/vmstat.h:518:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
     518 |         return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
         |                               ~~~~~~~~~~~ ^ ~~~
>> net/ipv6/seg6_iptunnel.c:130:9: error: call to undeclared function '__seg6_do_srh_encap'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     130 |         return __seg6_do_srh_encap(skb, osrh, proto, NULL);
         |                ^
   net/ipv6/seg6_iptunnel.c:130:9: note: did you mean 'seg6_do_srh_encap'?
   net/ipv6/seg6_iptunnel.c:128:5: note: 'seg6_do_srh_encap' declared here
     128 | int seg6_do_srh_encap(struct sk_buff *skb, struct ipv6_sr_hdr *osrh, int proto)
         |     ^
     129 | {
     130 |         return __seg6_do_srh_encap(skb, osrh, proto, NULL);
         |                ~~~~~~~~~~~~~~~~~~~
         |                seg6_do_srh_encap
>> net/ipv6/seg6_iptunnel.c:134:5: warning: no previous prototype for function '__seg6_do_srh_encap' [-Wmissing-prototypes]
     134 | int __seg6_do_srh_encap(struct sk_buff *skb, struct ipv6_sr_hdr *osrh,
         |     ^
   net/ipv6/seg6_iptunnel.c:134:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     134 | int __seg6_do_srh_encap(struct sk_buff *skb, struct ipv6_sr_hdr *osrh,
         | ^
         | static 
>> net/ipv6/seg6_iptunnel.c:330:9: error: call to undeclared function '__seg6_do_srh_inline'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     330 |         return __seg6_do_srh_inline(skb, osrh, NULL);
         |                ^
   net/ipv6/seg6_iptunnel.c:330:9: note: did you mean 'seg6_do_srh_inline'?
   net/ipv6/seg6_iptunnel.c:328:5: note: 'seg6_do_srh_inline' declared here
     328 | int seg6_do_srh_inline(struct sk_buff *skb, struct ipv6_sr_hdr *osrh)
         |     ^
     329 | {
     330 |         return __seg6_do_srh_inline(skb, osrh, NULL);
         |                ~~~~~~~~~~~~~~~~~~~~
         |                seg6_do_srh_inline
>> net/ipv6/seg6_iptunnel.c:334:5: warning: no previous prototype for function '__seg6_do_srh_inline' [-Wmissing-prototypes]
     334 | int __seg6_do_srh_inline(struct sk_buff *skb, struct ipv6_sr_hdr *osrh,
         |     ^
   net/ipv6/seg6_iptunnel.c:334:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     334 | int __seg6_do_srh_inline(struct sk_buff *skb, struct ipv6_sr_hdr *osrh,
         | ^
         | static 
   3 warnings and 2 errors generated.


vim +/__seg6_do_srh_encap +130 net/ipv6/seg6_iptunnel.c

   126	
   127	/* encapsulate an IPv6 packet within an outer IPv6 header with a given SRH */
   128	int seg6_do_srh_encap(struct sk_buff *skb, struct ipv6_sr_hdr *osrh, int proto)
   129	{
 > 130		return __seg6_do_srh_encap(skb, osrh, proto, NULL);
   131	}
   132	EXPORT_SYMBOL_GPL(seg6_do_srh_encap);
   133	
 > 134	int __seg6_do_srh_encap(struct sk_buff *skb, struct ipv6_sr_hdr *osrh,
   135				int proto, struct dst_entry *dst)
   136	{
   137		struct net *net = dev_net(skb_dst(skb)->dev);
   138		struct ipv6hdr *hdr, *inner_hdr;
   139		struct ipv6_sr_hdr *isrh;
   140		int hdrlen, tot_len, err;
   141		__be32 flowlabel;
   142	
   143		hdrlen = (osrh->hdrlen + 1) << 3;
   144		tot_len = hdrlen + sizeof(*hdr);
   145	
   146		err = skb_cow_head(skb, tot_len + (!dst ? skb->mac_len
   147							: LL_RESERVED_SPACE(dst->dev)));
   148		if (unlikely(err))
   149			return err;
   150	
   151		inner_hdr = ipv6_hdr(skb);
   152		flowlabel = seg6_make_flowlabel(net, skb, inner_hdr);
   153	
   154		skb_push(skb, tot_len);
   155		skb_reset_network_header(skb);
   156		skb_mac_header_rebuild(skb);
   157		hdr = ipv6_hdr(skb);
   158	
   159		/* inherit tc, flowlabel and hlim
   160		 * hlim will be decremented in ip6_forward() afterwards and
   161		 * decapsulation will overwrite inner hlim with outer hlim
   162		 */
   163	
   164		if (skb->protocol == htons(ETH_P_IPV6)) {
   165			ip6_flow_hdr(hdr, ip6_tclass(ip6_flowinfo(inner_hdr)),
   166				     flowlabel);
   167			hdr->hop_limit = inner_hdr->hop_limit;
   168		} else {
   169			ip6_flow_hdr(hdr, 0, flowlabel);
   170			hdr->hop_limit = ip6_dst_hoplimit(skb_dst(skb));
   171	
   172			memset(IP6CB(skb), 0, sizeof(*IP6CB(skb)));
   173	
   174			/* the control block has been erased, so we have to set the
   175			 * iif once again.
   176			 * We read the receiving interface index directly from the
   177			 * skb->skb_iif as it is done in the IPv4 receiving path (i.e.:
   178			 * ip_rcv_core(...)).
   179			 */
   180			IP6CB(skb)->iif = skb->skb_iif;
   181		}
   182	
   183		hdr->nexthdr = NEXTHDR_ROUTING;
   184	
   185		isrh = (void *)hdr + sizeof(*hdr);
   186		memcpy(isrh, osrh, hdrlen);
   187	
   188		isrh->nexthdr = proto;
   189	
   190		hdr->daddr = isrh->segments[isrh->first_segment];
   191		set_tun_src(net, skb_dst(skb)->dev, &hdr->daddr, &hdr->saddr);
   192	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ