LibCore: Do not leak FILE pointer in Group::add_group()

By using a ScopeGuard we make sure that we always close the FILE, also
on early returns.
This commit is contained in:
Kenneth Myhra 2022-01-20 21:07:19 +01:00 committed by Andreas Kling
parent 6df3fdd83f
commit 1fb8408aa2

View file

@ -5,6 +5,7 @@
*/
#include <AK/CharacterTypes.h>
#include <AK/ScopeGuard.h>
#include <LibCore/Group.h>
#include <LibCore/System.h>
@ -48,11 +49,13 @@ ErrorOr<void> Group::add_group(Group& group)
if (!file)
return Error::from_errno(errno);
ScopeGuard file_guard { [&] {
fclose(file);
} };
if (putgrent(&gr, file) < 0)
return Error::from_errno(errno);
fclose(file);
return {};
}
#endif