From 6eb9ebec5f2c8dcc937ee048dcede2d4a15c1f8f Mon Sep 17 00:00:00 2001 From: Andrew Kaster Date: Tue, 14 Jun 2022 18:54:49 -0600 Subject: [PATCH] LibC: Stop leaking FILE* from use of getgrnam and getgrgid --- Userland/Libraries/LibC/grp.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Userland/Libraries/LibC/grp.cpp b/Userland/Libraries/LibC/grp.cpp index 676be6b1c3..94ad2b2634 100644 --- a/Userland/Libraries/LibC/grp.cpp +++ b/Userland/Libraries/LibC/grp.cpp @@ -5,6 +5,7 @@ * SPDX-License-Identifier: BSD-2-Clause */ +#include #include #include #include @@ -58,6 +59,7 @@ void endgrent() struct group* getgrgid(gid_t gid) { setgrent(); + ScopeGuard guard = [] { endgrent(); }; while (auto* gr = getgrent()) { if (gr->gr_gid == gid) return gr; @@ -68,6 +70,7 @@ struct group* getgrgid(gid_t gid) struct group* getgrnam(char const* name) { setgrent(); + ScopeGuard guard = [] { endgrent(); }; while (auto* gr = getgrent()) { if (!strcmp(gr->gr_name, name)) return gr;