#18256: pppd restart may cause NULL pointer deference
-------------------------+-----------------------------------
Reporter: spiritbook | Owner: developers
Type: defect | Status: new
Priority: normal | Milestone: Barrier Breaker 14.07
Component: kernel | Version: Trunk
Resolution: | Keywords: ppp;kernel;
-------------------------+-----------------------------------
Comment (by spiritbook):
i add some debug , found that the 'po' is the same pointer int the two
function
{{{
pppoe_flush_dev
if (po->pppoe_dev == dev &&
sk->sk_state & (PPPOX_CONNECTED | PPPOX_BOUND
| PPPOX_ZOMBIE)) {
pppox_unbind_sock(sk);
sk->sk_state = PPPOX_ZOMBIE;
sk->sk_state_change(sk);
po->pppoe_dev = NULL;
pr_info("po->pppoe_dev = NULL %p\n", po);
dev_put(dev);
}
}}}
{{{
pppoe_release
pr_info("pppoe_release %p\n", po);
if (sk->sk_state & (PPPOX_CONNECTED | PPPOX_BOUND | PPPOX_ZOMBIE))
{
pr_info("pppoe_release 1\n");
dev_put(po->pppoe_dev);
po->pppoe_dev = NULL;
}
}}}
the ouput
{{{
[ 132.230000] po->pppoe_dev = NULL 81768800
[ 132.360000] pppoe_release 81768800
[ 132.370000] pppoe_release 1
}}}
thanks
--
Ticket URL: <https://dev.openwrt.org/ticket/18256#comment:1>
OpenWrt <http://openwrt.org>
Opensource Wireless Router Technology
_______________________________________________
openwrt-tickets mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-tickets