don't stat until the file is written
diff --git a/src/checkout.c b/src/checkout.c
index 5a2698e..2a29b18 100644
--- a/src/checkout.c
+++ b/src/checkout.c
@@ -666,11 +666,11 @@ static int buffer_to_file(
giterr_set(GITERR_OS, "Could not write to '%s'", path);
(void)p_close(fd);
} else {
- if ((error = p_fstat(fd, st)) < 0)
- giterr_set(GITERR_OS, "Error while statting '%s'", path);
-
if ((error = p_close(fd)) < 0)
giterr_set(GITERR_OS, "Error while closing '%s'", path);
+
+ if ((error = p_stat(path, st)) < 0)
+ giterr_set(GITERR_OS, "Error while statting '%s'", path);
}
if (!error &&