mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-11-19 05:10:40 +00:00
ip6: Fix crash in ip6_output with debug enabled
It turns out the crash only occurs if LWIP_DEBUG is enabled. If the parameter dest is NULL the function tries to find a route using the destination address of the packet instead. If this fails as well a debug message is printed but it is still using dest causing a NULL pointer dereference and crash at src/core/ipv6/ip6.c line 1312. [erik@kryo.se: Apply fix to ip6_output_hinted as well]
This commit is contained in:
parent
2e4932f23b
commit
51265f3f7d
@ -1305,6 +1305,7 @@ ip6_output(struct pbuf *p, const ip6_addr_t *src, const ip6_addr_t *dest,
|
|||||||
ip6_addr_copy_from_packed(src_addr, ip6hdr->src);
|
ip6_addr_copy_from_packed(src_addr, ip6hdr->src);
|
||||||
ip6_addr_copy_from_packed(dest_addr, ip6hdr->dest);
|
ip6_addr_copy_from_packed(dest_addr, ip6hdr->dest);
|
||||||
netif = ip6_route(&src_addr, &dest_addr);
|
netif = ip6_route(&src_addr, &dest_addr);
|
||||||
|
dest = &dest_addr;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (netif == NULL) {
|
if (netif == NULL) {
|
||||||
@ -1364,6 +1365,7 @@ ip6_output_hinted(struct pbuf *p, const ip6_addr_t *src, const ip6_addr_t *dest,
|
|||||||
ip6_addr_copy_from_packed(src_addr, ip6hdr->src);
|
ip6_addr_copy_from_packed(src_addr, ip6hdr->src);
|
||||||
ip6_addr_copy_from_packed(dest_addr, ip6hdr->dest);
|
ip6_addr_copy_from_packed(dest_addr, ip6hdr->dest);
|
||||||
netif = ip6_route(&src_addr, &dest_addr);
|
netif = ip6_route(&src_addr, &dest_addr);
|
||||||
|
dest = &dest_addr;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (netif == NULL) {
|
if (netif == NULL) {
|
||||||
|
Loading…
Reference in New Issue
Block a user