I got a core dump, and determined that somehow this isn't about the kernel, but clearly something about the newer kernel triggers a bug. In pppd/utils.c, the vslprintf() trips up for a few reasons. One is that pppd/options.c, print_option() seems to use printer() with the wrong number of arguments. I protected the dereference of the char **, but that wasn't it, the result was also still NULL. - if ((opt->flags & OPT_STATIC) == 0) - p = *(char **)p; - printer("%q", p); + if ((opt->flags & OPT_STATIC) == 0) { + if(p != NULL) { + p = *(char **)p; + } else { + p = "NULL"; + } + } + printer(arg, "%q", p); so I protected the %q against dereference of null: @@ -309,6 +310,12 @@ vslprintf(buf, buflen, fmt, args) case 'q': /* quoted string */ quoted = c == 'q'; p = va_arg(args, unsigned char *); + if(p==NULL) { + OUTCHAR('<'); + OUTCHAR('0'); + OUTCHAR('>'); + continue; + } if (fillch == '0' && prec >= 0) { n = prec; } else { The debug options were actually what made this fail, as it was about to print something about the pppol2tp plugin: Oct 25 13:48:14 l2tp-udesktop pppd[8515]: Plugin pppol2tp.so loaded. Oct 25 13:48:14 l2tp-udesktop pppd[8515]: pppd MCR options in effect: Oct 25 13:48:14 l2tp-udesktop pppd[8515]: debug debug debug debug debug#011#011# (from /etc/ppp/Checkpoint.options.xl2tpd) Oct 25 13:48:14 l2tp-udesktop pppd[8515]: nodetach#011#011# (from command line) Oct 25 13:48:14 l2tp-udesktop pppd[8515]: idle 72000#011#011# (from /etc/ppp/Checkpoint.options.xl2tpd) Oct 25 13:48:14 l2tp-udesktop pppd[8515]: ktune#011#011# (from /etc/ppp/Checkpoint.options.xl2tpd) Oct 25 13:48:14 l2tp-udesktop pppd[8515]: dump#011#011# (from /etc/ppp/Checkpoint.options.xl2tpd) Oct 25 13:48:14 l2tp-udesktop pppd[8515]: plugin pppol2tp.so#011#011# (from command line) Oct 25 13:48:14 l2tp-udesktop pppd[8515]: noauth#011#011# (from /etc/ppp/Checkpoint.options.xl2tpd) Oct 25 13:48:14 l2tp-udesktop pppd[8515]: refuse-chap#011#011# (from /etc/ppp/Checkpoint.options.xl2tpd) Oct 25 13:48:14 l2tp-udesktop pppd[8515]: refuse-mschap#011#011# (from /etc/ppp/Checkpoint.options.xl2tpd) Oct 25 13:48:14 l2tp-udesktop pppd[8515]: refuse-mschap-v2#011#011# (from /etc/ppp/Checkpoint.options.xl2tpd) Oct 25 13:48:14 l2tp-udesktop pppd[8515]: refuse-eap#011#011# (from /etc/ppp/Checkpoint.options.xl2tpd) Oct 25 13:48:14 l2tp-udesktop pppd[8515]: name XXXX#011#011# (from /etc/ppp/Checkpoint.options.xl2tpd) Oct 25 13:48:14 l2tp-udesktop pppd[8515]: password ??????#011#011# (from /etc/ppp/Checkpoint.options.xl2tpd) Oct 25 13:48:14 l2tp-udesktop pppd[8515]: remotename #011#011# (from /etc/ppp/Checkpoint.options.xl2tpd) HERE: Oct 25 13:48:14 l2tp-udesktop pppd[8515]: pppol2tp <0>#011#011# (from command line) Oct 25 13:48:14 l2tp-udesktop pppd[8515]: pppol2tp <0>#011#011# (from command line) Oct 25 13:48:14 l2tp-udesktop pppd[8515]: asyncmap 0#011#011# (from /etc/ppp/Checkpoint.options.xl2tpd) Oct 25 13:48:14 l2tp-udesktop pppd[8515]: passive#011#011# (from command line) Oct 25 13:48:14 l2tp-udesktop pppd[8515]: lcp-echo-failure 4#011#011# (from /etc/ppp/options) There are a lot of debian (and ubuntu) patches, which I would like collect into a ppp-2.5.0. https://github.com/mcr/pppd