| 
					
				 | 
			
			
				@@ -2750,14 +2750,23 @@ dirserv_read_measured_bandwidths(const char *from_file, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   time_t file_time, now; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   int ok; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /* Initialise line, so that we can't possibly run off the end. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  memset(line, 0, sizeof(line)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (fp == NULL) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     log_warn(LD_CONFIG, "Can't open bandwidth file at configured location: %s", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				              from_file); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (!fgets(line, sizeof(line), fp) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          || !strlen(line) || line[strlen(line)-1] != '\n') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /* If fgets fails, line is either unmodified, or indeterminate. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (!fgets(line, sizeof(line), fp)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    log_warn(LD_DIRSERV, "Empty bandwidth file"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    fclose(fp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (!strlen(line) || line[strlen(line)-1] != '\n') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     log_warn(LD_DIRSERV, "Long or truncated time in bandwidth file: %s", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				              escaped(line)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     fclose(fp); 
			 |