]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
tmpfile: fix resource leak
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 9 Jan 2023 01:52:30 +0000 (10:52 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 9 Jan 2023 01:52:33 +0000 (10:52 +0900)
Fixes CID#1501687.

src/tmpfiles/offline-passwd.c

index 4ffed1c10236076a5c9d188defc443c6d01ba5c6..085286e99213ad340eadf8b31f535a2fa4248b51 100644 (file)
@@ -11,13 +11,14 @@ DEFINE_PRIVATE_HASH_OPS_WITH_KEY_DESTRUCTOR(uid_gid_hash_ops, char, string_hash_
 static int open_passwd_file(const char *root, const char *fname, FILE **ret_file) {
         _cleanup_free_ char *p = NULL, *bn = NULL;
         _cleanup_close_ int fd = -EBADF;
+        _cleanup_fclose_ FILE *f = NULL;
         int r;
 
         fd = chase_symlinks_and_open(fname, root, CHASE_PREFIX_ROOT, O_RDONLY|O_CLOEXEC, &p);
         if (fd < 0)
                 return fd;
 
-        FILE *f = fdopen(fd, "r");
+        f = fdopen(fd, "r");
         if (!f)
                 return -errno;
 
@@ -29,7 +30,7 @@ static int open_passwd_file(const char *root, const char *fname, FILE **ret_file
 
         log_debug("Reading %s entries from %s...", bn, p);
 
-        *ret_file = f;
+        *ret_file = TAKE_PTR(f);
         return 0;
 }