diff mbox

[iproute2] ss: fix file-based filtering segfault

Message ID 1443080213-2553-1-git-send-email-dsw@hexology.net
State Accepted, archived
Delegated to: stephen hemminger
Headers show

Commit Message

Dan Webster Sept. 24, 2015, 7:36 a.m. UTC
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 <dsw@hexology.net>
---
 misc/ss.c | 6 ------
 1 file changed, 6 deletions(-)
diff mbox

Patch

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(&current_filter.f, 0, NULL, filter_fp))
-			usage();
-	}
-
 	while (argc > 0) {
 		if (strcmp(*argv, "state") == 0) {
 			NEXT_ARG();