base-files: sysfixtime exclude dnsmasq.time
dnsmasq maintains dnsmasq.time across reboots and uses it as a means of determining if current time is good enough to validate dnssec time stamps. By including /etc/dnsmasq.time as a time source for sysfixtime, the mechanism was effectively defeated because time was set to the last time that dnsmasq considered current even though that time is in the past. Since that time is out of date, dns(sec) resolution would fail thus defeating any ntp based mechanisms for setting the clock correctly. In theory the process is defeated by any files in /etc that are newer than /etc/dnsmasq.time however dnsmasq now updates the file's timestamp on process TERM so hopefully /etc/dnsmasq.time is the latest file timestamp in /etc as part of LEDE shutdown/reboot. Either way, including /etc/dnsmasq.time as a time source for sysfixtime is not helpful. Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
This commit is contained in:
		 Kevin Darbyshire-Bryant
					Kevin Darbyshire-Bryant
				
			
				
					committed by
					
						 Jo-Philipp Wich
						Jo-Philipp Wich
					
				
			
			
				
	
			
			
			 Jo-Philipp Wich
						Jo-Philipp Wich
					
				
			
						parent
						
							85a59127a7
						
					
				
				
					commit
					2b1556d3e0
				
			| @@ -10,8 +10,8 @@ HWCLOCK=/sbin/hwclock | ||||
| boot() { | ||||
| 	start && exit 0 | ||||
|  | ||||
| 	local maxtime="$(maxtime)" | ||||
| 	local curtime="$(date +%s)" | ||||
| 	local maxtime="$(find /etc -type f -exec date -r {} +%s \; | sort -nr | head -n1)" | ||||
| 	[ $curtime -lt $maxtime ] && date -s @$maxtime | ||||
| } | ||||
|  | ||||
| @@ -23,3 +23,12 @@ stop() { | ||||
| 	[ -e "$RTC_DEV" ] && [ -e "$HWCLOCK" ] && $HWCLOCK -w -f $RTC_DEV && \ | ||||
| 		logger -t sysfixtime "saved '$(date)' to $RTC_DEV" | ||||
| } | ||||
|  | ||||
| maxtime() { | ||||
| 	local file newest | ||||
|  | ||||
| 	for file in $( find /etc -type f ! -path /etc/dnsmasq.time ) ; do | ||||
| 		[ -z "$newest" -o "$newest" -ot "$file"] && newest=$file | ||||
| 	done | ||||
| 	[ "$newest" ] && date -r "$newest" +%s | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user