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;
 		}

Reply via email to