Module Name: src Committed By: rmind Date: Sat May 31 22:37:05 UTC 2014
Modified Files: src/usr.sbin/npf/npfctl: npf_scan.l Log Message: npfctl: allow group of zeroes in IPv6 address; noted by spz@. To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.21 src/usr.sbin/npf/npfctl/npf_scan.l Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.sbin/npf/npfctl/npf_scan.l diff -u src/usr.sbin/npf/npfctl/npf_scan.l:1.20 src/usr.sbin/npf/npfctl/npf_scan.l:1.21 --- src/usr.sbin/npf/npfctl/npf_scan.l:1.20 Fri Mar 14 11:29:45 2014 +++ src/usr.sbin/npf/npfctl/npf_scan.l Sat May 31 22:37:05 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: npf_scan.l,v 1.20 2014/03/14 11:29:45 rmind Exp $ */ +/* $NetBSD: npf_scan.l,v 1.21 2014/05/31 22:37:05 rmind Exp $ */ /*- * Copyright (c) 2011-2012 The NetBSD Foundation, Inc. @@ -84,6 +84,7 @@ npfctl_parse_string(const char *str) ID [a-zA-Z_][a-zA-Z_0-9]* DID [a-zA-Z_][a-zA-Z_0-9-]* NUMBER [0-9]+ +HEXDIG [0-9a-fA-F]+ %% alg return ALG; @@ -151,7 +152,7 @@ any return ANY; "," return COMMA; "=" return EQ; -"0x"[0-9a-fA-F]+ { +"0x"{HEXDIG} { char *endp, *buf = ecalloc(1, yyleng + 1); buf[yyleng] = 0; yylval.num = strtoul(buf+2, &endp, 16); @@ -166,7 +167,12 @@ any return ANY; return FPNUM; } -[0-9a-fA-F]+":"[0-9a-fA-F:]* { +{HEXDIG}":"[0-9a-fA-F:]* { + yylval.str = estrndup(yytext, yyleng); + return IPV6ADDR; + } + +"::"{HEXDIG}[0-9a-fA-F:]* { yylval.str = estrndup(yytext, yyleng); return IPV6ADDR; }