From e305b32d9ac235933aeba775ab249812552d9334 Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Tue, 13 Dec 2022 15:55:09 -0500 Subject: [PATCH] LibCore: Protect Core::Group against null group::gr_mem members Serenity's implementation does not set this pointer to anything, so we should not assume it was set. --- Userland/Libraries/LibCore/Group.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Userland/Libraries/LibCore/Group.cpp b/Userland/Libraries/LibCore/Group.cpp index 6dc3c172a3..66df15e2d6 100644 --- a/Userland/Libraries/LibCore/Group.cpp +++ b/Userland/Libraries/LibCore/Group.cpp @@ -33,8 +33,10 @@ ErrorOr Group::generate_group_file() const builder.appendff("{}:x:{}:{}\n", m_name, m_id, DeprecatedString::join(',', m_members)); else { Vector members; - for (size_t i = 0; group->gr_mem[i]; ++i) - members.append(group->gr_mem[i]); + if (group->gr_mem) { + for (size_t i = 0; group->gr_mem[i]; ++i) + members.append(group->gr_mem[i]); + } builder.appendff("{}:x:{}:{}\n", group->gr_name, group->gr_gid, DeprecatedString::join(',', members)); } @@ -129,10 +131,12 @@ ErrorOr> Group::all() break; Vector members; - for (size_t i = 0; group->gr_mem[i]; ++i) - members.append(group->gr_mem[i]); + if (group->gr_mem) { + for (size_t i = 0; group->gr_mem[i]; ++i) + members.append(group->gr_mem[i]); + } - groups.append({ group->gr_name, group->gr_gid, members }); + groups.append({ group->gr_name, group->gr_gid, move(members) }); } return groups;