xl2tpd: fix invoking xl2tpd-control
authorYousong Zhou <yszhou4tech@gmail.com>
Wed, 11 Nov 2020 09:54:16 +0000 (17:54 +0800)
committerYousong Zhou <yszhou4tech@gmail.com>
Thu, 12 Nov 2020 07:20:16 +0000 (15:20 +0800)
Upstream commit 90884c62 ("xl2tpd-control refactoring") introduced in
1.3.16 changed command names

The l2tp protocol handler part was from @danvd in pull request
openwrt/packages#13866

Fixes f07319d6 ("xl2tpd: bump to version 1.3.16")

Ref: https://github.com/openwrt/packages/pull/13866
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
net/xl2tpd/Makefile
net/xl2tpd/files/l2tp.sh
net/xl2tpd/patches/0001-Skip-building-pfc.patch [deleted file]
net/xl2tpd/patches/0001-xl2tpd-control-fix-out-of-bound-access.patch [new file with mode: 0644]
net/xl2tpd/patches/0002-xl2tpd-control-fix-typo-in-usage.patch [new file with mode: 0644]
net/xl2tpd/patches/0003-Skip-building-pfc.patch [new file with mode: 0644]

index 4cb05bafd21086d0cad41648933f9886a1bd3061..6ee96cd509b36dcd328a2e3f00e44bcdc86d6b3b 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=xl2tpd
 PKG_VERSION:=1.3.16
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=LICENSE
index c565d6baa90096ee4260aacf353fedafa386c913..294c3ddecc435c504c88e68a5725f3f8d1ab8e91 100644 (file)
@@ -88,12 +88,12 @@ $mtu
 $pppd_options
 EOF
 
-       xl2tpd-control add l2tp-${interface} pppoptfile=${optfile} lns=${server} || {
+       xl2tpd-control add-lac l2tp-${interface} pppoptfile=${optfile} lns=${server} || {
                echo "xl2tpd-control: Add l2tp-$interface failed" >&2
                proto_setup_failed "$interface"
                exit 1
        }
-       xl2tpd-control connect l2tp-${interface} || {
+       xl2tpd-control connect-lac l2tp-${interface} || {
                echo "xl2tpd-control: Connect l2tp-$interface failed" >&2
                proto_setup_failed "$interface"
                exit 1
@@ -106,7 +106,7 @@ proto_l2tp_teardown() {
 
        rm -f ${optfile}
        if [ -p /var/run/xl2tpd/l2tp-control ]; then
-               xl2tpd-control remove l2tp-${interface} || {
+               xl2tpd-control remove-lac l2tp-${interface} || {
                        echo "xl2tpd-control: Remove l2tp-$interface failed" >&2
                }
        fi
diff --git a/net/xl2tpd/patches/0001-Skip-building-pfc.patch b/net/xl2tpd/patches/0001-Skip-building-pfc.patch
deleted file mode 100644 (file)
index 6ca940a..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-From 1d11b2432b6e0f99b9f08c65b51292e1a2251975 Mon Sep 17 00:00:00 2001
-From: Yousong Zhou <zhouyousong@yunionyun.com>
-Date: Fri, 18 Oct 2019 11:29:03 +0000
-Subject: [PATCH] Skip building pfc
-
-It can cause build failure, see [1]
-
- [1] https://github.com/openwrt/packages/issues/10270
----
- Makefile | 15 +++------------
- 1 file changed, 3 insertions(+), 12 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 9927715..8a3eecd 100644
---- a/Makefile
-+++ b/Makefile
-@@ -115,10 +115,10 @@ BINDIR?=$(DESTDIR)${PREFIX}/bin
- MANDIR?=$(DESTDIR)${PREFIX}/share/man
--all: $(EXEC) pfc $(CONTROL_EXEC)
-+all: $(EXEC) $(CONTROL_EXEC)
- clean:
--      rm -f $(OBJS) $(EXEC) pfc.o pfc $(CONTROL_EXEC)
-+      rm -f $(OBJS) $(EXEC) $(CONTROL_EXEC)
- $(EXEC): $(OBJS) $(HDRS)
-       $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS)
-@@ -126,10 +126,6 @@ $(EXEC): $(OBJS) $(HDRS)
- $(CONTROL_EXEC): $(CONTROL_SRCS)
-       $(CC) $(CFLAGS) $(LDFLAGS) $(CONTROL_SRCS) -o $@
--pfc:
--      $(CC) $(CFLAGS) -c contrib/pfc.c
--      $(CC) $(LDFLAGS) -o pfc pfc.o -lpcap $(LDLIBS)
--
- romfs:
-       $(ROMFSINST) /bin/$(EXEC)
-@@ -142,7 +138,7 @@ packagingprep:
-       sed -i "s/Version: .*/Version: ${XL2TPDBASEVERSION}/" packaging/*/*.spec
-       sed -i "s/PKG_VERSION:=.*/PKG_VERSION:=${XL2TPDBASEVERSION}/" packaging/openwrt/Makefile
--install: ${EXEC} pfc ${CONTROL_EXEC}
-+install: ${EXEC} ${CONTROL_EXEC}
-       install -d -m 0755 ${SBINDIR}
-       install -m 0755 $(EXEC) ${SBINDIR}/$(EXEC)
-       install -d -m 0755 ${MANDIR}/man5
-@@ -151,11 +147,6 @@ install: ${EXEC} pfc ${CONTROL_EXEC}
-       install -m 0644 doc/xl2tpd-control.8 ${MANDIR}/man8/
-       install -m 0644 doc/xl2tpd.conf.5 doc/l2tp-secrets.5 \
-                ${MANDIR}/man5/
--      # pfc
--      install -d -m 0755 ${BINDIR}
--      install -m 0755 pfc ${BINDIR}/pfc
--      install -d -m 0755 ${MANDIR}/man1
--      install -m 0644 contrib/pfc.1 ${MANDIR}/man1/
-       # control exec
-       install -d -m 0755 ${SBINDIR}
-       install -m 0755 $(CONTROL_EXEC) ${SBINDIR}/$(CONTROL_EXEC)
diff --git a/net/xl2tpd/patches/0001-xl2tpd-control-fix-out-of-bound-access.patch b/net/xl2tpd/patches/0001-xl2tpd-control-fix-out-of-bound-access.patch
new file mode 100644 (file)
index 0000000..6475272
--- /dev/null
@@ -0,0 +1,26 @@
+From f94ffac18ddfe72b00ec849a34c71d6bc5bcb767 Mon Sep 17 00:00:00 2001
+From: Yousong Zhou <yszhou4tech@gmail.com>
+Date: Thu, 12 Nov 2020 14:31:23 +0800
+Subject: [PATCH] xl2tpd-control: fix out-of-bound access
+
+It can cause segfault when presented with unknown command name
+
+Fixes 90884c62 ("xl2tpd-control refactoring")
+---
+ xl2tpd-control.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/xl2tpd-control.c b/xl2tpd-control.c
+index 1e87c93..d1df0f6 100644
+--- a/xl2tpd-control.c
++++ b/xl2tpd-control.c
+@@ -83,7 +83,8 @@ struct command_t commands[] = {
+     {"available",     &command_available,     TUNNEL_NOT_REQUIRED},
+     {"add-lns",       &command_add_lns,       TUNNEL_REQUIRED},
+     {"status-lns",    &command_status_lns,    TUNNEL_REQUIRED},
+-    {"remove-lns",    &command_remove_lns,    TUNNEL_REQUIRED}
++    {"remove-lns",    &command_remove_lns,    TUNNEL_REQUIRED},
++    {},
+ };
+ void usage()
diff --git a/net/xl2tpd/patches/0002-xl2tpd-control-fix-typo-in-usage.patch b/net/xl2tpd/patches/0002-xl2tpd-control-fix-typo-in-usage.patch
new file mode 100644 (file)
index 0000000..ae5dc06
--- /dev/null
@@ -0,0 +1,22 @@
+From 06bd6af97055071be5ed0f83a808032688a503db Mon Sep 17 00:00:00 2001
+From: Yousong Zhou <yszhou4tech@gmail.com>
+Date: Thu, 12 Nov 2020 14:33:05 +0800
+Subject: [PATCH] xl2tpd-control: fix typo in usage
+
+---
+ xl2tpd-control.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/xl2tpd-control.c b/xl2tpd-control.c
+index d1df0f6..2e683c8 100644
+--- a/xl2tpd-control.c
++++ b/xl2tpd-control.c
+@@ -96,7 +96,7 @@ void usage()
+             "   --help  show this help message\n\n"
+             "List of supported commands:\n"
+             "add-lac, status-lac, remove-lac, connect-lac, disconnect-lac\n"
+-            "add-lns, status-lns, remove-lns, avaliable\n\n"
++            "add-lns, status-lns, remove-lns, available\n\n"
+             "See xl2tpd-control(8) man page for more details.\n");
+ }
diff --git a/net/xl2tpd/patches/0003-Skip-building-pfc.patch b/net/xl2tpd/patches/0003-Skip-building-pfc.patch
new file mode 100644 (file)
index 0000000..ed40d43
--- /dev/null
@@ -0,0 +1,61 @@
+From f374c10c77d25863606566edcddaf02481f25032 Mon Sep 17 00:00:00 2001
+From: Yousong Zhou <zhouyousong@yunionyun.com>
+Date: Fri, 18 Oct 2019 11:29:03 +0000
+Subject: [PATCH] Skip building pfc
+
+It can cause build failure, see [1]
+
+ [1] https://github.com/openwrt/packages/issues/10270
+---
+ Makefile | 15 +++------------
+ 1 file changed, 3 insertions(+), 12 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 9927715..8a3eecd 100644
+--- a/Makefile
++++ b/Makefile
+@@ -115,10 +115,10 @@ BINDIR?=$(DESTDIR)${PREFIX}/bin
+ MANDIR?=$(DESTDIR)${PREFIX}/share/man
+-all: $(EXEC) pfc $(CONTROL_EXEC)
++all: $(EXEC) $(CONTROL_EXEC)
+ clean:
+-      rm -f $(OBJS) $(EXEC) pfc.o pfc $(CONTROL_EXEC)
++      rm -f $(OBJS) $(EXEC) $(CONTROL_EXEC)
+ $(EXEC): $(OBJS) $(HDRS)
+       $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS)
+@@ -126,10 +126,6 @@ $(EXEC): $(OBJS) $(HDRS)
+ $(CONTROL_EXEC): $(CONTROL_SRCS)
+       $(CC) $(CFLAGS) $(LDFLAGS) $(CONTROL_SRCS) -o $@
+-pfc:
+-      $(CC) $(CFLAGS) -c contrib/pfc.c
+-      $(CC) $(LDFLAGS) -o pfc pfc.o -lpcap $(LDLIBS)
+-
+ romfs:
+       $(ROMFSINST) /bin/$(EXEC)
+@@ -142,7 +138,7 @@ packagingprep:
+       sed -i "s/Version: .*/Version: ${XL2TPDBASEVERSION}/" packaging/*/*.spec
+       sed -i "s/PKG_VERSION:=.*/PKG_VERSION:=${XL2TPDBASEVERSION}/" packaging/openwrt/Makefile
+-install: ${EXEC} pfc ${CONTROL_EXEC}
++install: ${EXEC} ${CONTROL_EXEC}
+       install -d -m 0755 ${SBINDIR}
+       install -m 0755 $(EXEC) ${SBINDIR}/$(EXEC)
+       install -d -m 0755 ${MANDIR}/man5
+@@ -151,11 +147,6 @@ install: ${EXEC} pfc ${CONTROL_EXEC}
+       install -m 0644 doc/xl2tpd-control.8 ${MANDIR}/man8/
+       install -m 0644 doc/xl2tpd.conf.5 doc/l2tp-secrets.5 \
+                ${MANDIR}/man5/
+-      # pfc
+-      install -d -m 0755 ${BINDIR}
+-      install -m 0755 pfc ${BINDIR}/pfc
+-      install -d -m 0755 ${MANDIR}/man1
+-      install -m 0644 contrib/pfc.1 ${MANDIR}/man1/
+       # control exec
+       install -d -m 0755 ${SBINDIR}
+       install -m 0755 $(CONTROL_EXEC) ${SBINDIR}/$(CONTROL_EXEC)