Commit Diff


commit - cb6dec97391a175b4faeb703f00d3c3b1e713275
commit + 80c5c120285b0b38cf25a37858e737047c570a98
blob - f6e70aa814319115c3d0ab44166f2a74b9e76b1e
blob + 4f18b2ae84584657b22a765e3ba1d0aac5e9c6b8
--- lib/worktree.c
+++ lib/worktree.c
@@ -1003,6 +1003,10 @@ get_file_status(unsigned char *status, struct stat *sb
 			break;
 		/* Skip length of blob object header first time around. */
 		flen = fread(fbuf, 1, sizeof(fbuf) - hdrlen, f);
+		if (flen == 0 && ferror(f)) {
+			err = got_error_from_errno();
+			break;
+		}
 		if (blen == 0) {
 			if (flen != 0)
 				*status = GOT_STATUS_MODIFY;