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 <ansuelsmth@gmail.com>
This commit is contained in:
parent
3522e9b89a
commit
5ae750da10
|
@ -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)?
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
From 519aae7b91454e45b0528809e94c5008cdf0c060 Mon Sep 17 00:00:00 2001
|
||||
From: Zahari Doychev <zdoychev@maxlinear.com>
|
||||
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 <zahari.doychev@linux.com>
|
||||
---
|
||||
staging/mausezahn.c | 13 ++++++-------
|
||||
1 file changed, 6 insertions(+), 7 deletions(-)
|
||||
|
||||
--- a/staging/mausezahn.c
|
||||
+++ b/staging/mausezahn.c
|
||||
@@ -23,7 +23,8 @@
|
||||
#include <sys/ioctl.h>
|
||||
#include <netinet/in.h>
|
||||
#include <stdarg.h>
|
||||
-
|
||||
+#include <getopt.h>
|
||||
+
|
||||
#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();
|
||||
}
|
||||
|
Loading…
Reference in New Issue