commit 553f2fa65865c31c5e3c48812cfd46176cffdd27 Author: Date: Wed Jul 28 05:33:53 2010 +0000 [Bug 1593] ntpd abort in free() with logconfig syntax error. diff --git a/ntpd/ntp_parser.y b/ntpd/ntp_parser.y index b3f7ac3..cf8942f 100644 --- a/ntpd/ntp_parser.y +++ b/ntpd/ntp_parser.y @@ -995,14 +995,24 @@ log_config_list log_config_command : T_String { - char prefix = $1[0]; - char *type = $1 + 1; + char prefix; + char * type; - if (prefix != '+' && prefix != '-' && prefix != '=') { - yyerror("Logconfig prefix is not '+', '-' or '='\n"); - } - else - $$ = create_attr_sval(prefix, estrdup(type)); + switch ($1[0]) { + + case '+': + case '-': + case '=': + prefix = $1[0]; + type = $1 + 1; + break; + + default: + prefix = '='; + type = $1; + } + + $$ = create_attr_sval(prefix, estrdup(type)); YYFREE($1); } ;