From 9300ecd1b163b0eb057a3b70dfbae713febd00d7 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Wed, 29 Apr 2026 13:22:22 -0400 Subject: xmkstemp: UB, close handles correctly * free tempfile --- src/lib/core/utils.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/lib/core/utils.c b/src/lib/core/utils.c index 0ba5170..35310b4 100644 --- a/src/lib/core/utils.c +++ b/src/lib/core/utils.c @@ -525,23 +525,19 @@ char *xmkstemp(FILE **fp, const char *mode) { } *fp = fdopen(fd, mode); if (!*fp) { - // unable to open, die - if (fd > 0) - close(fd); - *fp = NULL; + close(fd); return NULL; } char *path = strdup(t_name); if (!path) { // strdup failed, die - if (*fp) { - // close the file handle - fclose(*fp); - *fp = NULL; - } - // fall through. path is NULL. + // close the file handle + fclose(*fp); + *fp = NULL; + return NULL; } + return path; } -- cgit