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

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