From: mhepp_at_edunix.cz
Date: Thu 04 Sep 2003 - 00:43:58 BST
Hello,
I was compilling vanilla kernel patched with ctx-17a patch, I was not
able to compile code udp.c if ipv6 support was not selected.
I was searching and I found bug in file linux/net/ipv4/udp.c.
It was not clear to me what patch author intended...
but there is for sure a bug.
look for "#if defined(CONFIG_IPV6)" in the code:
Michal Heppler
--/* UDP is nearly always wildcards out the wazoo, it makes no sense to * try * harder than this. -DaveM */ struct sock *udp_v4_lookup_longway(u32 saddr, u16 sport, u32 daddr, u16 dport, int dif) { struct sock *sk, *result = NULL; unsigned short hnum = ntohs(dport); int badness = -1;
for(sk = udp_hash[hnum & (UDP_HTABLE_SIZE - 1)]; sk != NULL; sk = sk->next) { if(sk->num == hnum && !ipv6_only_sock(sk)) { int score; #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) score = sk->family == PF_INET ? 1 : 0; #else }else if (sk->ip_info != NULL){ if (udp_in_list (sk->ip_info,daddr)){ score++; }else{ continue; } score = 1; #endif if(sk->rcv_saddr) { if(sk->rcv_saddr != daddr) continue; score+=2;
,,,
} } } return result; }