yes. Confirmed this issue has been fixed. Antonio Quartulli <a...@unstable.cc> 于2021年1月14日周四 上午12:12写道:
> Potential fix pushed to the experimental branch. > > Thanks again for reporting. > > On 13/01/2021 14:18, Antonio Quartulli wrote: > > It turns our this is a bug in my experimental branch :-) > > > > The object pointed by sa6 is not large enough, hence triggering that > error. > > > > Will come up with a fix. > > > > Thanks! > > > > On 13/01/2021 11:17, Tony He wrote: > >> Hi Antonio, > >> > >> Yes, I'm using latest commit. Maybe it's a compiler bug. What's your > >> compiler version? > >> Here is mine. > >> tony-vm-2004% gcc --version > >> gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0 > >> Copyright (C) 2019 Free Software Foundation, Inc. > >> This is free software; see the source for copying conditions. There is > NO > >> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR > PURPOSE. > >> > >> > >> > >> Antonio Quartulli <a...@unstable.cc> 于2021年1月13日周三 下午5:17写道: > >> > >> Also, > >> > >> are you sure you are compiling the latest experimental branch? > >> HEAD is 2555e5595088991006e57a3ee447f356dffdca92 > >> > >> Regards, > >> > >> On 13/01/2021 10:12, Antonio Quartulli wrote: > >> > Hi Tony, > >> > > >> > thanks for the message. > >> > The experimental branch is still...experimental, so I expect more > >> things > >> > to crash and fail miserably :-D > >> > > >> > In any case, feel free to send a patch if you see how to fix the > >> issue! > >> > It would be nice to have external contributions :-) > >> > > >> > This said, I am not sure this is our bug - the sin6_addr member of > >> > struct sockaddr_in6 is of type struct sin6_addr: > >> > > >> > > >> > https://elixir.bootlin.com/linux/v5.4/source/include/uapi/linux/in6.h#L54 > >> < > https://elixir.bootlin.com/linux/v5.4/source/include/uapi/linux/in6.h#L54> > >> > > >> > And I believe it is widely known that an IPv6 address is 12 bytes, > >> not 8.. > >> > > >> > Maybe it's a bug in the compiler? > >> > > >> > Best Regards, > >> > > >> > On 13/01/2021 10:03, Tony He wrote: > >> >> Sorry, clicked "send" button before adding subject and CC > >> Openvpn-dev. I > >> >> will send a new mail. > >> >> > >> >> Tony He <huangy...@gmail.com <mailto:huangy...@gmail.com> > >> <mailto:huangy...@gmail.com <mailto:huangy...@gmail.com>>> > 于2021年1月13 > >> >> 日周三 下午4:57写道: > >> >> > >> >> Hi Antonio, > >> >> > >> >> I see you have pushed new commits to support multiple link to > >> peers. > >> >> So I tried compiling, but encounter below error. My kernel > >> version > >> >> is 5.4.0-54. > >> >> > >> >> > >> >> > >> >> tony-vm-2004% make > >> > >> >> > >> > >> >> > >> > >> >> > >> >> /project/openvpn/ovpn-dco.git/gen-compat-autoconf.sh > >> >> /project/openvpn/ovpn-dco.git/compat-autoconf.h > >> > >> >> > >> > >> >> > >> >> make -C /lib/modules/5.4.0-54-generic/build > >> >> M=/project/openvpn/ovpn-dco.git > PWD=/project/openvpn/ovpn-dco.git > >> >> REVISION=2555e55 CONFIG_OVPN_DCO=m INSTALL_MOD_DIR=updates/ > > >> >> modules > >> >> make[1]: Entering directory > >> >> '/usr/src/linux-headers-5.4.0-54-generic' > >> > >> >> > >> > >> >> > >> >> CC [M] > >> /project/openvpn/ovpn-dco.git/drivers/net/ovpn-dco/main.o > >> >> > >> > >> >> > >> > >> >> > >> >> CC [M] > >> /project/openvpn/ovpn-dco.git/drivers/net/ovpn-dco/bind.o > >> >> > >> > >> >> > >> > >> >> > >> >> CC [M] > >> >> /project/openvpn/ovpn-dco.git/drivers/net/ovpn-dco/crypto.o > >> > >> >> > >> > >> >> > > >> >> CC [M] > >> /project/openvpn/ovpn-dco.git/drivers/net/ovpn-dco/ovpn.o > >> >> > >> > >> >> > >> > >> >> > >> >> CC [M] > >> /project/openvpn/ovpn-dco.git/drivers/net/ovpn-dco/peer.o > >> >> > >> > >> >> > >> > >> >> > >> >> In file included from ./include/linux/bitmap.h:9, > >> > >> >> > >> > >> >> > >> > >> >> > >> >> from ./include/linux/cpumask.h:12, > >> > >> >> > >> > >> >> > >> > >> >> > >> >> from ./arch/x86/include/asm/cpumask.h:5, > >> > >> >> > >> > >> >> > >> > >> >> > >> >> from ./arch/x86/include/asm/msr.h:11, > >> > >> >> > >> > >> >> > >> > >> >> > >> >> from ./arch/x86/include/asm/processor.h:21, > >> > >> >> > >> > >> >> > >> > >> >> > >> >> from ./arch/x86/include/asm/cpufeature.h:5, > >> > >> >> > >> > >> >> > >> > >> >> > >> >> from > >> ./arch/x86/include/asm/thread_info.h:53, > >> >> > >> > >> >> > >> > >> >> > >> >> from ./include/linux/thread_info.h:38, > >> > >> >> > >> > >> >> > >> > >> >> > >> >> from ./arch/x86/include/asm/preempt.h:7, > >> > >> >> > >> > >> >> > >> > >> >> > >> >> from ./include/linux/preempt.h:78, > >> > >> >> > >> > >> >> > >> > >> >> > >> >> from ./include/linux/spinlock.h:51, > >> > >> >> > >> > >> >> > >> > >> >> > >> >> from ./include/linux/seqlock.h:36, > >> > >> >> > >> > >> >> > >> > >> >> > >> >> from ./include/linux/time.h:6, > >> > >> >> > >> > >> >> > >> > >> >> > >> >> from ./include/linux/ktime.h:24, > >> > >> >> > >> > >> >> > >> > >> >> > >> >> from ./include/linux/timer.h:6, > >> > >> >> > >> > >> >> > >> > >> >> > >> >> from ./include/linux/netdevice.h:24, > >> > >> >> > >> > >> >> > >> > >> >> > >> >> from > >> >> /project/openvpn/ovpn-dco.git/linux-compat.h:20, > >> > >> >> > >> > >> >> > >> >> from <command-line>: > >> > >> >> > >> > >> >> > >> > >> >> > >> >> In function ‘memcmp’, > >> > >> >> > >> > >> >> > >> > >> >> > >> >> inlined from ‘ovpn_peer_lookup_transp_addr’ at > >> >> > >> /project/openvpn/ovpn-dco.git/drivers/net/ovpn-dco/peer.c:457:8: > > >> >> > >> > >> >> > >> >> ./include/linux/string.h:440:4: error: call to > ‘__read_overflow’ > >> >> declared with attribute error: detected read beyond size of > >> object > >> >> passed as 1st parameter > >> > >> >> > >> >> 440 | __read_overflow(); > >> >> | ^~~~~~~~~~~~~~~~~ > >> >> make[3]: *** [scripts/Makefile.build:275: > >> >> /project/openvpn/ovpn-dco.git/drivers/net/ovpn-dco/peer.o] > >> Error 1 > >> >> make[2]: *** [scripts/Makefile.build:522: > >> >> /project/openvpn/ovpn-dco.git/drivers/net/ovpn-dco] Error 2 > >> >> make[1]: *** [Makefile:1757: /project/openvpn/ovpn-dco.git] > >> Error 2 > >> >> make[1]: Leaving directory > >> '/usr/src/linux-headers-5.4.0-54-generic' > >> >> make: *** [Makefile:46: all] Error 2 > >> >> > >> >> > >> >> Function memcmp > >> >> > >> in /usr/src/linux-headers-5.4.0-54-generic/include/linux/string.h. > >> >> 434 __FORTIFY_INLINE int memcmp(const void *p, const void *q, > >> >> __kernel_size_t size) > >> >> 435 { > >> >> 436 size_t p_size = __builtin_object_size(p, 0); > >> >> 437 size_t q_size = __builtin_object_size(q, 0); > >> >> 438 if (__builtin_constant_p(size)) { > >> >> 439 if (p_size < size) > >> >> 440 __read_overflow(); > >> >> 441 if (q_size < size) > >> >> 442 __read_overflow2(); > >> >> 443 } > >> >> 444 if (p_size < size || q_size < size) > >> >> 445 fortify_panic(__func__); > >> >> 446 return __underlying_memcmp(p, q, size); > >> >> 447 } > >> >> > >> >> Seems that p_size is 8 in above memcmp function because if I > >> change > >> >> your code as below , then it's OK(9 causes same error). > >> >> 456 case AF_INET6: > >> >> 457 if (memcmp((void > *)&sa6->sin6_addr, > >> >> (void *)&bind->sa.in6.sin6_addr, > >> >> 458 // sizeof(struct > >> in6_addr))) > >> >> 459 8)) > >> >> 460 break; > >> >> > >> >> Tony > >> >> > >> > > >> > >> -- > >> Antonio Quartulli > >> > > > > -- > Antonio Quartulli >
_______________________________________________ Openvpn-devel mailing list Openvpn-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openvpn-devel