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
| ||
|
Date: Thu, 07 Apr 2011 13:31:06 +0900 From: OGAWA Hirofumi <hirofumi@...l.parknet.co.jp> To: David Miller <davem@...emloft.net> Cc: netdev@...r.kernel.org Subject: Re: problem of "ipv4: revert Set rt->rt_iif more sanely on output routes." David Miller <davem@...emloft.net> writes: > From: OGAWA Hirofumi <hirofumi@...l.parknet.co.jp> > Date: Tue, 05 Apr 2011 22:05:10 +0900 > >> ipv4: Set rt->rt_iif more sanely on output routes. >> (1018b5c01636c7c6bda31a719bda34fc631db29a) >> >> The above patch seems to be caused of avahi breakage. >> >> I'm not debugging fully though, avahi is using IP_PKTINFO and checking >> in_pktinfo->ipi_ifindex > 0. >> >> And if I reverted above patch, it seems to fix avahi's IP_PKTINFO problem. > > in_pktinfo is given to the application only during recvmsg() calls, the > call chain is (for example): > > udp_recvmsg() > --> ip_cmsg_recv() > --> ip_cmsg_recv_pktinfo() > > Therefore we will only be working with receive packets, whose routes are > computed using ip_route_input*() which will fill in the rt_iif field > appropriately. > > The only exception to this would be packets which are looped back, in > which case the cached output route attached to the packet will be used. I see. > Your RFC patch should work, but we're trying to make "struct rtable" > smaller rather than larger. I felt it from git hisotry. > In what way does routing break if you simply restore the original > rt_iif assignment in output route creation? That's the most preferred > fix for this. I'm not pretty sure though, output message is ip_finish_output2: No header cache and no neighbour! I'm not debugging this though, static inline bool rt_is_output_route(struct rtable *rt) { return rt->rt_iif == 0; } from review I guess the above is one of cause. Thanks. -- OGAWA Hirofumi <hirofumi@...l.parknet.co.jp> -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists