Blame SOURCES/ntp-4.2.6p5-cve-2015-7703.patch

063937
diff -up ntp-4.2.6p5/ntpd/ntp_parser.y.cve-2015-7703 ntp-4.2.6p5/ntpd/ntp_parser.y
063937
--- ntp-4.2.6p5/ntpd/ntp_parser.y.cve-2015-7703	2015-08-20 12:21:43.206525550 +0200
063937
+++ ntp-4.2.6p5/ntpd/ntp_parser.y	2015-08-20 12:31:04.223172507 +0200
063937
@@ -1005,23 +1005,43 @@ misc_cmd_int_keyword
063937
 
063937
 misc_cmd_str_keyword
063937
 	:	T_Leapfile
063937
-	|	T_Pidfile
063937
 	|	T_Qos
063937
 	;
063937
 
063937
 misc_cmd_str_lcl_keyword
063937
 	:	T_Logfile
063937
+	|	T_Pidfile
063937
 	|	T_Saveconfigdir
063937
 	;
063937
 
063937
 drift_parm
063937
 	:	T_String
063937
-			{ enqueue(cfgt.vars, create_attr_sval(T_Driftfile, $1)); }
063937
+		{
063937
+			if (input_from_file) {
063937
+				enqueue(cfgt.vars, create_attr_sval(T_Driftfile, $1));
063937
+			} else {
063937
+				YYFREE($1);
063937
+				yyerror("driftfile remote configuration ignored");
063937
+			}
063937
+		}
063937
 	|	T_String T_Double
063937
-			{ enqueue(cfgt.vars, create_attr_dval(T_WanderThreshold, $2));
063937
-			  enqueue(cfgt.vars, create_attr_sval(T_Driftfile, $1)); }
063937
+		{
063937
+			if (input_from_file) {
063937
+				enqueue(cfgt.vars, create_attr_dval(T_WanderThreshold, $2));
063937
+				enqueue(cfgt.vars, create_attr_sval(T_Driftfile, $1));
063937
+			} else {
063937
+				YYFREE($1);
063937
+				yyerror("driftfile remote configuration ignored");
063937
+			}
063937
+		}
063937
 	|	/* Null driftfile,  indicated by null string "\0" */
063937
-			{ enqueue(cfgt.vars, create_attr_sval(T_Driftfile, "\0")); }
063937
+		{
063937
+			if (input_from_file) {
063937
+				enqueue(cfgt.vars, create_attr_sval(T_Driftfile, estrdup("")));
063937
+			} else {
063937
+				yyerror("driftfile remote configuration ignored");
063937
+			}
063937
+		}
063937
 	;
063937
 
063937
 variable_assign