[PATCH iproute2] ss: fix file-based filtering segfault
DORMANTno replies
From: Dan Webster <hidden>
Date: 2015-09-24 07:47:21
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Dan Webster <hidden>
Date: 2015-09-24 07:47:21
Subsystem:
the rest · Maintainer:
Linus Torvalds
Commit 1527a17 introduced a change where the second of two ssfilter_parse()
calls in ss.c was moved outside of a conditional block (ss.c: ~3575). This
commit enabled the parsing of services, such as 'sport = :ssh', but
inadvertently broke the '-F' file-based filtering:
--
$ cat filt.txt
src 127.0.0.1
$ ss -F filt.txt
Segmentation fault (core dumped)
Program received signal SIGSEGV, Segmentation fault.
yylex () at ssfilter.y:183
183 while (*tokptr == 0) {
--
The first (redundant) ssfilter_parse() was mangling yylex() for the latter
call.
Signed-off-by: Dan Webster <redacted>
---
misc/ss.c | 6 ------
1 file changed, 6 deletions(-)
diff --git a/misc/ss.c b/misc/ss.c
index 9efc3c8..7c3dfa3 100644
--- a/misc/ss.c
+++ b/misc/ss.c@@ -3782,12 +3782,6 @@ int main(int argc, char *argv[]) exit(0); } - /* Now parse filter... */ - if (argc == 0 && filter_fp) { - if (ssfilter_parse(¤t_filter.f, 0, NULL, filter_fp)) - usage(); - } - while (argc > 0) { if (strcmp(*argv, "state") == 0) { NEXT_ARG();
--
2.1.4