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: Sun, 08 Mar 2015 23:02:11 -0400 (EDT) From: David Miller <davem@...emloft.net> To: willemb@...gle.com Cc: netdev@...r.kernel.org, jan@...dor.com, richardcochran@...il.com Subject: Re: [PATCH net v2] ip: fix error queue empty skb handling From: Willem de Bruijn <willemb@...gle.com> Date: Sat, 7 Mar 2015 20:33:22 -0500 > From: Willem de Bruijn <willemb@...gle.com> > > When reading from the error queue, msg_name and msg_control are only > populated for some errors. A new exception for empty timestamp skbs > added a false positive on icmp errors without payload. > > `traceroute -M udpconn` only displayed gateways that return payload > with the icmp error: the embedded network headers are pulled before > sock_queue_err_skb, leaving an skb with skb->len == 0 otherwise. > > Fix this regression by refining when msg_name and msg_control > branches are taken. The solutions for the two fields are independent. > > msg_name only makes sense for errors that configure serr->port and > serr->addr_offset. Test the first instead of skb->len. This also fixes > another issue. saddr could hold the wrong data, as serr->addr_offset > is not initialized in some code paths, pointing to the start of the > network header. It is only valid when serr->port is set (non-zero). > > msg_control support differs between IPv4 and IPv6. IPv4 only honors > requests for ICMP and timestamps with SOF_TIMESTAMPING_OPT_CMSG. The > skb->len test can simply be removed, because skb->dev is also tested > and never true for empty skbs. IPv6 honors requests for all errors > aside from local errors and timestamps on empty skbs. > > In both cases, make the policy more explicit by moving this logic to > a new function that decides whether to process msg_control and that > optionally prepares the necessary fields in skb->cb[]. After this > change, the IPv4 and IPv6 paths are more similar. > > The last case is rxrpc. Here, simply refine to only match timestamps. > > Fixes: 49ca0d8bfaf3 ("net-timestamp: no-payload option") > > Reported-by: Jan Niehusmann <jan@...dor.com> > Signed-off-by: Willem de Bruijn <willemb@...gle.com> Applied, thanks for fixing this Willem. -- 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