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; }
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to