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
> 
> 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>> 于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


_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to