Message ID | 20191206134923.2771651-1-haakon.bugge@oracle.com |
---|---|
State | Changes Requested |
Delegated to: | David Miller |
Headers | show |
Series | [net] net: netlink: Fix uninit-value in netlink_recvmsg() | expand |
Hello! On 12/06/2019 04:49 PM, Håkon Bugge wrote: > If skb_recv_datagram() returns NULL, netlink_recvmsg() will return an > arbitrarily value. Arbitrary? > Signed-off-by: Håkon Bugge <haakon.bugge@oracle.com> > --- > net/netlink/af_netlink.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c > index 90b2ab9dd449..bb7276f9c9f8 100644 > --- a/net/netlink/af_netlink.c > +++ b/net/netlink/af_netlink.c > @@ -1936,6 +1936,7 @@ static int netlink_recvmsg(struct socket *sock, struct msghdr *msg, size_t len, > return -EOPNOTSUPP; > > copied = 0; > + err = 0; > > skb = skb_recv_datagram(sk, flags, noblock, &err); > if (skb == NULL) MBR, Sergei
> On 6 Dec 2019, at 19:20, Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> wrote: > > Hello! > > On 12/06/2019 04:49 PM, Håkon Bugge wrote: > >> If skb_recv_datagram() returns NULL, netlink_recvmsg() will return an >> arbitrarily value. > > Arbitrary? is an adjective. Since I described the verb *return*, I assumed the adverb, arbitrarily, is correct, But english is not my native language. Thxs, Håkon > >> Signed-off-by: Håkon Bugge <haakon.bugge@oracle.com> >> --- >> net/netlink/af_netlink.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c >> index 90b2ab9dd449..bb7276f9c9f8 100644 >> --- a/net/netlink/af_netlink.c >> +++ b/net/netlink/af_netlink.c >> @@ -1936,6 +1936,7 @@ static int netlink_recvmsg(struct socket *sock, struct msghdr *msg, size_t len, >> return -EOPNOTSUPP; >> >> copied = 0; >> + err = 0; >> >> skb = skb_recv_datagram(sk, flags, noblock, &err); >> if (skb == NULL) > > MBR, Sergei
On 12/6/19 5:49 AM, Håkon Bugge wrote: > If skb_recv_datagram() returns NULL, netlink_recvmsg() will return an > arbitrarily value. > > Signed-off-by: Håkon Bugge <haakon.bugge@oracle.com> > --- > net/netlink/af_netlink.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c > index 90b2ab9dd449..bb7276f9c9f8 100644 > --- a/net/netlink/af_netlink.c > +++ b/net/netlink/af_netlink.c > @@ -1936,6 +1936,7 @@ static int netlink_recvmsg(struct socket *sock, struct msghdr *msg, size_t len, > return -EOPNOTSUPP; > > copied = 0; > + err = 0; > > skb = skb_recv_datagram(sk, flags, noblock, &err); > if (skb == NULL) > Please provide a Fixes: tag By doing the research, you probably would find there is no bug. err is set in skb_recv_datagram() when there is no packet to read.
On 12/06/2019 09:45 PM, Håkon Bugge wrote: >>> If skb_recv_datagram() returns NULL, netlink_recvmsg() will return an >>> arbitrarily value. >> >> Arbitrary? > > is an adjective. Yes. And it goes with the "value" noun. > Since I described the verb *return*, I assumed the adverb, > arbitrarily, is correct, In that case, it's misplaced, it should go before the verb. > But english is not my native language. Not mine as well. :-) > Thxs, Håkon MBR, Sergei
> On 6 Dec 2019, at 19:47, Eric Dumazet <eric.dumazet@gmail.com> wrote: > > > > On 12/6/19 5:49 AM, Håkon Bugge wrote: >> If skb_recv_datagram() returns NULL, netlink_recvmsg() will return an >> arbitrarily value. >> >> Signed-off-by: Håkon Bugge <haakon.bugge@oracle.com> >> --- >> net/netlink/af_netlink.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c >> index 90b2ab9dd449..bb7276f9c9f8 100644 >> --- a/net/netlink/af_netlink.c >> +++ b/net/netlink/af_netlink.c >> @@ -1936,6 +1936,7 @@ static int netlink_recvmsg(struct socket *sock, struct msghdr *msg, size_t len, >> return -EOPNOTSUPP; >> >> copied = 0; >> + err = 0; >> >> skb = skb_recv_datagram(sk, flags, noblock, &err); >> if (skb == NULL) >> > > Please provide a Fixes: tag > > By doing the research, you probably would find there is no bug. > > err is set in skb_recv_datagram() when there is no packet to read. yes, you are right, by bad. Håkon
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index 90b2ab9dd449..bb7276f9c9f8 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c @@ -1936,6 +1936,7 @@ static int netlink_recvmsg(struct socket *sock, struct msghdr *msg, size_t len, return -EOPNOTSUPP; copied = 0; + err = 0; skb = skb_recv_datagram(sk, flags, noblock, &err); if (skb == NULL)
If skb_recv_datagram() returns NULL, netlink_recvmsg() will return an arbitrarily value. Signed-off-by: Håkon Bugge <haakon.bugge@oracle.com> --- net/netlink/af_netlink.c | 1 + 1 file changed, 1 insertion(+)