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
| ||
|
Message-ID: <20170504140015.Horde.iqqsROVYuFdJnC6P1dMPyBa@gator4166.hostgator.com> Date: Thu, 04 May 2017 14:00:15 -0500 From: "Gustavo A. R. Silva" <garsilva@...eddedor.com> To: Joe Perches <joe@...ches.com> Cc: David Miller <davem@...emloft.net>, kuznet@....inr.ac.ru, jmorris@...ei.org, yoshfuji@...ux-ipv6.org, kaber@...sh.net, netdev@...r.kernel.org, linux-kernel@...r.kernel.org Subject: Re: [net-ipv4] question about arguments position Hi Joe, Quoting Joe Perches <joe@...ches.com>: > On Thu, 2017-05-04 at 12:46 -0400, David Miller wrote: >> From: "Gustavo A. R. Silva" <garsilva@...eddedor.com> >> Date: Thu, 04 May 2017 11:07:54 -0500 >> >> > While looking into Coverity ID 1357474 I ran into the following piece >> > of code at net/ipv4/inet_diag.c:392: >> >> Because it's been this way since at least 2005, it doesn't matter if >> the order is correct or not. What's there is the locked in behavior >> exposed to userspace and changing it will break things for people. > > Adding a few comments around the code about why > it is this way will help avoid future questions. In the case of Coverity, I already triaged and documented this issue. So people can ignore it in the future. Regarding the code comments, what about the following patch: diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c index 3828b3a..7a56641 100644 --- a/net/ipv4/inet_diag.c +++ b/net/ipv4/inet_diag.c @@ -389,6 +389,12 @@ static int sk_diag_fill(struct sock *sk, struct sk_buff *skb, nlmsg_flags, unlh, net_admin); } +/* + * Ignore the position of the arguments req->id.idiag_dport and + * req->id.idiag_sport in both calls to inet_lookup() and inet6_lookup() + * functions, once this is a locked in behavior exposed to user space. + * Changing this will break things for people. + */ struct sock *inet_diag_find_one_icsk(struct net *net, struct inet_hashinfo *hashinfo, const struct inet_diag_req_v2 *req) Thanks -- Gustavo A. R. Silva
Powered by blists - more mailing lists