commit 08ea2d1b208deaafa404f05069a578e4c58a9a6d from: Omar Polo date: Tue May 16 17:32:28 2023 UTC make got_gotweb_flushfile always close the file ok millert@ commit - 276bccc4651afa03134d0faa1cf1c703b5f819bd commit + 08ea2d1b208deaafa404f05069a578e4c58a9a6d blob - 8badab72875c91358f1c37cf5df22ced9e96953a blob + 044b02875ab1742a706a4d1967f1b02e2931d346 --- gotwebd/got_operations.c +++ gotwebd/got_operations.c @@ -55,19 +55,21 @@ static const struct got_error *got_gotweb_blame_cb(voi const struct got_error * got_gotweb_flushfile(FILE *f) { + const struct got_error *err = NULL; + if (fseek(f, 0, SEEK_SET) == -1) - return got_error_from_errno("fseek"); + err = got_error_from_errno("fseek"); - if (ftruncate(fileno(f), 0) == -1) - return got_error_from_errno("ftruncate"); + if (err == NULL && ftruncate(fileno(f), 0) == -1) + err = got_error_from_errno("ftruncate"); - if (fsync(fileno(f)) == -1) - return got_error_from_errno("fsync"); + if (err == NULL && fsync(fileno(f)) == -1) + err = got_error_from_errno("fsync"); - if (fclose(f) == EOF) - return got_error_from_errno("fclose"); + if (fclose(f) == EOF && err == NULL) + err = got_error_from_errno("fclose"); - return NULL; + return err; } static const struct got_error *