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