[IPV4]: ip_route_input panic fix
This fixes http://bugzilla.kernel.org/show_bug.cgi?id=6388 The bug is caused by ip_route_input dereferencing skb->nh.protocol of the dummy skb passed dow from inet_rtm_getroute (Thanks Thomas for seeing it). It only happens if the route requested is for a multicast IP address. Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
c19f7a9e1a
Коммит
d2c962b853
|
@ -2741,7 +2741,10 @@ int inet_rtm_getroute(struct sk_buff *in_skb, struct nlmsghdr* nlh, void *arg)
|
|||
/* Reserve room for dummy headers, this skb can pass
|
||||
through good chunk of routing engine.
|
||||
*/
|
||||
skb->mac.raw = skb->data;
|
||||
skb->mac.raw = skb->nh.raw = skb->data;
|
||||
|
||||
/* Bugfix: need to give ip_route_input enough of an IP header to not gag. */
|
||||
skb->nh.iph->protocol = IPPROTO_ICMP;
|
||||
skb_reserve(skb, MAX_HEADER + sizeof(struct iphdr));
|
||||
|
||||
if (rta[RTA_SRC - 1])
|
||||
|
|
Загрузка…
Ссылка в новой задаче