From 5ae750da100efdd631ec1b217dac69ce313c9442 Mon Sep 17 00:00:00 2001 From: Christian Marangi Date: Thu, 29 Jun 2023 18:24:53 +0200 Subject: [PATCH] netsniff-ng: backport patch fixing wrong args handling with musl Backport a patch from upstream fixing wrong args handling with musl. Before this patch non args must be passed at the end of the command due to a musl limitation. Signed-off-by: Christian Marangi --- net/netsniff-ng/Makefile | 2 +- ...hn-use-getopt_long-instead-of-getopt.patch | 57 +++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 net/netsniff-ng/patches/0004-mausezahn-use-getopt_long-instead-of-getopt.patch diff --git a/net/netsniff-ng/Makefile b/net/netsniff-ng/Makefile index aa6dfc420a..60f228043d 100644 --- a/net/netsniff-ng/Makefile +++ b/net/netsniff-ng/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=netsniff-ng PKG_VERSION:=0.6.8 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/netsniff-ng/netsniff-ng/tar.gz/v$(PKG_VERSION)? diff --git a/net/netsniff-ng/patches/0004-mausezahn-use-getopt_long-instead-of-getopt.patch b/net/netsniff-ng/patches/0004-mausezahn-use-getopt_long-instead-of-getopt.patch new file mode 100644 index 0000000000..528d201b29 --- /dev/null +++ b/net/netsniff-ng/patches/0004-mausezahn-use-getopt_long-instead-of-getopt.patch @@ -0,0 +1,57 @@ +From 519aae7b91454e45b0528809e94c5008cdf0c060 Mon Sep 17 00:00:00 2001 +From: Zahari Doychev +Date: Thu, 8 Dec 2022 17:40:17 +0100 +Subject: [PATCH] mausezahn: use getopt_long instead of getopt + +The musl getopt stops processing the options at the first non-option +argument comapared to the glibc variant. Using getopt_long fixes this +problem. + +Signed-off-by: Zahari Doychev +--- + staging/mausezahn.c | 13 ++++++------- + 1 file changed, 6 insertions(+), 7 deletions(-) + +--- a/staging/mausezahn.c ++++ b/staging/mausezahn.c +@@ -23,7 +23,8 @@ + #include + #include + #include +- ++#include ++ + #include "mz.h" + #include "cli.h" + #include "mops.h" +@@ -447,9 +448,7 @@ int getopts (int argc, char *argv[]) + char unit; + + opterr = 1; // let getopt print error message if necessary +- +- +- while ((c = getopt(argc, argv, short_options)) != -1) ++ while ((c = getopt_long(argc, argv, short_options, NULL, NULL)) != -1) { + switch (c) { + case '4': + tx.eth_type = 0x0800; +@@ -646,7 +645,7 @@ int getopts (int argc, char *argv[]) + fprintf (stderr," mz/getopts: Could not handle arguments properly!\n"); + return 1; + } +- ++ } + // ******************************************** + // Handle additional arguments + // ******************************************** +@@ -660,8 +659,8 @@ int getopts (int argc, char *argv[]) + "-- Verbose mode --\n" + "\n"); + } +- +- if (argc<2) { ++ ++ if (optind+2 < argc) { + help(); + } +