https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=217620
Bug ID: 217620 Summary: ipfw flow specification parsing Product: Base System Version: 11.0-STABLE Hardware: Any OS: Any Status: New Severity: Affects Only Me Priority: --- Component: bin Assignee: freebsd-bugs@FreeBSD.org Reporter: l...@donnerhacke.de Parsing of port-numbers explicitly set to "0" does not work. BTW: The whole code is broken for parsing named ports. How to repeat: root@server:~ # ipfw table test create type flow:src-ip,src-port,dst-ip,dst-port,proto root@server:~ # ipfw table all info --- table(test), set(0) --- kindex: 1, type: flow:src-ip,proto,src-port,dst-ip,dst-port references: 0, valtype: legacy algorithm: flow:hash items: 0, size: 296 root@server:~ # ipfw table test add 0.0.0.0,0,0,0.0.0.0,0 ipfw: Unknown service: 0 After the patch: root@server:~ # ipfw table test add 0.0.0.0,0,0,0.0.0.0,0 added: 0.0.0.0,0,0,0.0.0.0,0 0 root@server:~ # ipfw table test list --- table(test), set(0) --- 0.0.0.0,0,0,0.0.0.0,0 0 --- sbin/ipfw/ipfw2.h (revision 314807) +++ sbin/ipfw/ipfw2.h (working copy) @@ -1236,12 +1269,11 @@ if ((p = strchr(arg, ',')) != NULL) *p++ = '\0'; - if ((port = htons(strtol(arg, NULL, 10))) == 0) { + port = htons(strtol(arg, &pp, 10)); + if(*pp != '\0') { if ((sent = getservbyname(arg, NULL)) == NULL) - errx(EX_DATAERR, "Unknown service: %s", - arg); - else - key = sent->s_port; + errx(EX_DATAERR, "Unknown service: %s", arg); + port = sent->s_port; } tfe->sport = port; @@ -1280,12 +1312,11 @@ if ((p = strchr(arg, ',')) != NULL) *p++ = '\0'; - if ((port = htons(strtol(arg, NULL, 10))) == 0) { + port = htons(strtol(arg, &pp, 10)); + if (*pp != '\0') { if ((sent = getservbyname(arg, NULL)) == NULL) - errx(EX_DATAERR, "Unknown service: %s", - arg); - else - key = sent->s_port; + errx(EX_DATAERR, "Unknown service: %s", arg); + port = sent->s_port; } tfe->dport = port; -- You are receiving this mail because: You are the assignee for the bug. _______________________________________________ freebsd-bugs@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-bugs To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"