#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

Reply via email to