From 9ff9e509363767e68d6d4efe912f598b689f280f Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 27 Apr 2025 10:21:15 +0530 Subject: [PATCH] Also handle EINTR for fclose --- kitty/launcher/utils.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kitty/launcher/utils.h b/kitty/launcher/utils.h index 30613ceb1..e1c52a34a 100644 --- a/kitty/launcher/utils.h +++ b/kitty/launcher/utils.h @@ -224,12 +224,14 @@ read_full_file(const char* filename, size_t *sz) { rewind(file); char* buffer = (char*)malloc(file_size + 1); // +1 for the null terminator if (!buffer) { + errno = EINTR; while (errno == EINTR && fclose(file) != 0); errno = ENOMEM; - fclose(file); return NULL; } ssize_t q = safe_read_stream(buffer, file_size, file); - fclose(file); + int saved = errno; + errno = EINTR; while (errno == EINTR && fclose(file) != 0); + errno = saved; if (q < 0) { free(buffer); buffer = NULL; if (sz) *sz = 0; } else { if (sz) { *sz = q; } buffer[q] = 0; } return buffer;