|  | @@ -135,6 +135,7 @@ hashindex_read(const char *path)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |      FILE *fd;
 | 
	
		
			
				|  |  |      off_t length;
 | 
	
		
			
				|  |  | +    off_t bytes_read;
 | 
	
		
			
				|  |  |      HashHeader header;
 | 
	
		
			
				|  |  |      HashIndex *index = NULL;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -142,8 +143,9 @@ hashindex_read(const char *path)
 | 
	
		
			
				|  |  |          EPRINTF_PATH(path, "fopen failed");
 | 
	
		
			
				|  |  |          return NULL;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -    if(fread(&header, 1, sizeof(HashHeader), fd) != sizeof(HashHeader)) {
 | 
	
		
			
				|  |  | -        EPRINTF_PATH(path, "fread failed");
 | 
	
		
			
				|  |  | +    bytes_read = fread(&header, 1, sizeof(HashHeader), fd);
 | 
	
		
			
				|  |  | +    if(bytes_read != sizeof(HashHeader)) {
 | 
	
		
			
				|  |  | +        EPRINTF_PATH(path, "fread header failed (expected %ld, got %ld)", sizeof(HashHeader), bytes_read);
 | 
	
		
			
				|  |  |          goto fail;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      if(fseek(fd, 0, SEEK_END) < 0) {
 | 
	
	
		
			
				|  | @@ -176,8 +178,9 @@ hashindex_read(const char *path)
 | 
	
		
			
				|  |  |          index = NULL;
 | 
	
		
			
				|  |  |          goto fail;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -    if(fread(index->data, 1, length, fd) != length) {
 | 
	
		
			
				|  |  | -        EPRINTF_PATH(path, "fread failed");
 | 
	
		
			
				|  |  | +    bytes_read = fread(index->data, 1, length, fd);
 | 
	
		
			
				|  |  | +    if(bytes_read != length) {
 | 
	
		
			
				|  |  | +        EPRINTF_PATH(path, "fread hashindex failed (expected %ld, got %ld)", length, bytes_read);
 | 
	
		
			
				|  |  |          free(index->data);
 | 
	
		
			
				|  |  |          free(index);
 | 
	
		
			
				|  |  |          index = NULL;
 |