Commit Diff


commit - 11ce22a1a15a25df1218e6cd79c7c0ff7e951b63
commit + 06c44edcbf03f02d1d7c07f9360de526dd4203d3
blob - 7e67a8450c8809c9522ce0263b3e11fa2bdacd78
blob + 2df166b9fc595bdad6395572e7e122cbb2c4b2d1
--- lib/patch.c
+++ lib/patch.c
@@ -546,8 +546,8 @@ patch_file(struct got_patch *p, const char *path, FILE
 		err = copy(tmp, orig, copypos, -1);
 
 done:
-	if (orig != NULL)
-		fclose(orig);
+	if (orig != NULL && fclose(orig) == EOF && err == NULL)
+		err = got_error_from_errno("fclose");
 	return err;
 }
 
@@ -687,8 +687,8 @@ done:
 	free(template);
 	if (tmppath != NULL)
 		unlink(tmppath);
-	if (tmp != NULL)
-		fclose(tmp);
+	if (tmp != NULL && fclose(tmp) == EOF && err == NULL)
+		err = got_error_from_errno("fclose");
 	free(tmppath);
 	free(oldpath);
 	free(newpath);