[TIPC]: Fix infinite loop in netlink handler
The tipc netlink config handler uses the nlmsg_pid from the request header as destination for its reply. If the application initialized nlmsg_pid to 0, the reply is looped back to the kernel, causing hangup. Fix: use nlmsg_pid of the skb that triggered the request. Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
dbbeb2f991
commit
64beb8f3eb
|
@ -60,7 +60,7 @@ static int handle_cmd(struct sk_buff *skb, struct genl_info *info)
|
||||||
rep_nlh = nlmsg_hdr(rep_buf);
|
rep_nlh = nlmsg_hdr(rep_buf);
|
||||||
memcpy(rep_nlh, req_nlh, hdr_space);
|
memcpy(rep_nlh, req_nlh, hdr_space);
|
||||||
rep_nlh->nlmsg_len = rep_buf->len;
|
rep_nlh->nlmsg_len = rep_buf->len;
|
||||||
genlmsg_unicast(rep_buf, req_nlh->nlmsg_pid);
|
genlmsg_unicast(rep_buf, NETLINK_CB(skb).pid);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue