From c8d931ebe2bc75862ca5d48ab5694570d4c89662 Mon Sep 17 00:00:00 2001 From: Masatake YAMATO Date: Thu, 6 May 2021 13:39:30 +0900 Subject: [PATCH] lib/fileutils: close fd if fdopen is failed Signed-off-by: Masatake YAMATO --- include/fileutils.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/include/fileutils.h b/include/fileutils.h index 10fe46a25..ad54b952c 100644 --- a/include/fileutils.h +++ b/include/fileutils.h @@ -34,10 +34,15 @@ static inline FILE *fopen_at(int dir, const char *filename, int flags, const char *mode) { int fd = openat(dir, filename, flags); + FILE *ret; + if (fd < 0) return NULL; - return fdopen(fd, mode); + ret = fdopen(fd, mode); + if (!ret) + close(fd); + return ret; } #endif