Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Jun 2014 19:12:56 +0000 (UTC)
From:      Josh Paetzel <jpaetzel@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r267833 - head/usr.sbin/ctld
Message-ID:  <201406241912.s5OJCuGC094973@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jpaetzel
Date: Tue Jun 24 19:12:55 2014
New Revision: 267833
URL: http://svnweb.freebsd.org/changeset/base/267833

Log:
  Fix issues in config parser relating to lun serial numbers.
  
  Without this fix some serial numbers needed to be quoted
  to avoid the config parser bailing out.
  
  Submitted by:	delphij
  Sponsored by:	iXsystems

Modified:
  head/usr.sbin/ctld/parse.y
  head/usr.sbin/ctld/token.l

Modified: head/usr.sbin/ctld/parse.y
==============================================================================
--- head/usr.sbin/ctld/parse.y	Tue Jun 24 19:05:47 2014	(r267832)
+++ head/usr.sbin/ctld/parse.y	Tue Jun 24 19:12:55 2014	(r267833)
@@ -659,6 +659,19 @@ lun_serial:	SERIAL STR
 		}
 		lun_set_serial(lun, $2);
 		free($2);
+	} |	SERIAL NUM
+	{
+		char *str = NULL;
+
+		if (lun->l_serial != NULL) {
+			log_warnx("serial for lun %d, target \"%s\" "
+			    "specified more than once",
+			    lun->l_lun, target->t_name);
+			return (1);
+		}
+		asprintf(&str, "%ju", $2);
+		lun_set_serial(lun, str);
+		free(str);
 	}
 	;
 

Modified: head/usr.sbin/ctld/token.l
==============================================================================
--- head/usr.sbin/ctld/token.l	Tue Jun 24 19:05:47 2014	(r267832)
+++ head/usr.sbin/ctld/token.l	Tue Jun 24 19:12:55 2014	(r267833)
@@ -74,8 +74,9 @@ target			{ return TARGET; }
 timeout			{ return TIMEOUT; }
 [0-9]+[kKmMgGtTpPeE]?	{ if (expand_number(yytext, &yylval.num) == 0)
 				return NUM;
-			  else
-				return STR;
+			  else {
+				yylval.str = strdup(yytext); return STR;
+			  }
 			}
 \"[^"]+\"		{ yylval.str = strndup(yytext + 1,
 			    strlen(yytext) - 2); return STR; }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201406241912.s5OJCuGC094973>