On 11/14/16 10:33 AM, Hannes Frederic Sowa wrote: >>>>> I just also quickly read up on the history (sorry was travelling last >>>>> week) and wonder if you ever saw a user space facing bug or if this is >>>>> basically some difference you saw while writing out of tree code? >>>> >>>> I checked the userspace API this morning. bind and cmsg for example check >>>> that the address is valid with calls to ipv6_chk_addr. >>> >>> Hmm, so it fixes no real bug. >>> >>> Because of translations of flowi6_oif we actually can't do a correct >>> check of source address for cases like the one I outlined above? Hmm, >>> maybe we should simply depend on user space checks. >> >> I believe Jason's case is forwarding path and the ipv6_stub->ipv6_dst_lookup >> API. > > It is not a kernel API, because we don't support something like that for > external kernel modules. We basically exported ipv6_dst_lookup to allow > some IPv4 code to do ipv6 stunts when the IPv6 module is loaded. ;)
??? ipv6_stub is exported for modules (EXPORT_SYMBOL_GPL(ipv6_stub)). ipv6_stub->ipv6_dst_lookup is used by several modules -- geneve, tipc, vxlan, mpls -- for IPv6 lookups, not IPv4 code do IPv6 stunts. So how do you say that is not an exported kernel API?