ppp: Fix seg fault when using pppol2tp
authorJohn Crispin <john@openwrt.org>
Fri, 3 Apr 2015 19:06:45 +0000 (19:06 +0000)
committerJohn Crispin <john@openwrt.org>
Fri, 3 Apr 2015 19:06:45 +0000 (19:06 +0000)
PPPD crashes (SEGV) when the dump or dryrun options are specified and an option
is internally defined as "o_special" with an option flag of "OPT_A2STRVAL".
As the option value is not saved when the parameter is processed, a reference
to the option will result into a crash (e.g. when printing).

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
SVN-Revision: 45263

package/network/services/ppp/patches/540-save-pppol2tp_fd_str.patch [new file with mode: 0644]

diff --git a/package/network/services/ppp/patches/540-save-pppol2tp_fd_str.patch b/package/network/services/ppp/patches/540-save-pppol2tp_fd_str.patch
new file mode 100644 (file)
index 0000000..7dd2ad8
--- /dev/null
@@ -0,0 +1,13 @@
+--- a/pppd/plugins/pppol2tp/pppol2tp.c
++++ b/pppd/plugins/pppol2tp/pppol2tp.c
+@@ -148,6 +148,10 @@ static int setdevname_pppol2tp(char **ar
+               fatal("PPPoL2TP kernel driver not installed");
+       }
++      pppol2tp_fd_str = strdup(*argv);
++      if (pppol2tp_fd_str == NULL)
++              novm("PPPoL2TP FD");
++
+       /* Setup option defaults. Compression options are disabled! */
+       modem = 0;