[NETLINK]: illegal use of pid in rtnetlink
When a netlink message is not related to a netlink socket, it is issued by kernel socket with pid 0. Netlink "pid" has nothing to do with current->pid. I called it incorrectly, if it was named "port", the confusion would be avoided. Signed-off-by: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
a70ea994a0
Коммит
28633514af
|
@ -455,7 +455,7 @@ void rtmsg_ifinfo(int type, struct net_device *dev, unsigned change)
|
|||
if (!skb)
|
||||
return;
|
||||
|
||||
if (rtnetlink_fill_ifinfo(skb, dev, type, current->pid, 0, change, 0) < 0) {
|
||||
if (rtnetlink_fill_ifinfo(skb, dev, type, 0, 0, change, 0) < 0) {
|
||||
kfree_skb(skb);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1135,7 +1135,7 @@ static void rtmsg_ifa(int event, struct in_ifaddr* ifa)
|
|||
|
||||
if (!skb)
|
||||
netlink_set_err(rtnl, 0, RTNLGRP_IPV4_IFADDR, ENOBUFS);
|
||||
else if (inet_fill_ifaddr(skb, ifa, current->pid, 0, event, 0) < 0) {
|
||||
else if (inet_fill_ifaddr(skb, ifa, 0, 0, event, 0) < 0) {
|
||||
kfree_skb(skb);
|
||||
netlink_set_err(rtnl, 0, RTNLGRP_IPV4_IFADDR, EINVAL);
|
||||
} else {
|
||||
|
|
|
@ -1045,7 +1045,7 @@ fib_convert_rtentry(int cmd, struct nlmsghdr *nl, struct rtmsg *rtm,
|
|||
}
|
||||
|
||||
nl->nlmsg_flags = NLM_F_REQUEST;
|
||||
nl->nlmsg_pid = current->pid;
|
||||
nl->nlmsg_pid = 0;
|
||||
nl->nlmsg_seq = 0;
|
||||
nl->nlmsg_len = NLMSG_LENGTH(sizeof(*rtm));
|
||||
if (cmd == SIOCDELRT) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче