1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 14:07:45 +00:00

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.
This commit is contained in:
Timothy Flynn 2022-12-13 15:55:09 -05:00 committed by Tim Flynn
parent d09266237d
commit e305b32d9a

View file

@ -33,8 +33,10 @@ ErrorOr<DeprecatedString> Group::generate_group_file() const
builder.appendff("{}:x:{}:{}\n", m_name, m_id, DeprecatedString::join(',', m_members)); builder.appendff("{}:x:{}:{}\n", m_name, m_id, DeprecatedString::join(',', m_members));
else { else {
Vector<DeprecatedString> members; Vector<DeprecatedString> members;
if (group->gr_mem) {
for (size_t i = 0; group->gr_mem[i]; ++i) for (size_t i = 0; group->gr_mem[i]; ++i)
members.append(group->gr_mem[i]); members.append(group->gr_mem[i]);
}
builder.appendff("{}:x:{}:{}\n", group->gr_name, group->gr_gid, DeprecatedString::join(',', members)); builder.appendff("{}:x:{}:{}\n", group->gr_name, group->gr_gid, DeprecatedString::join(',', members));
} }
@ -129,10 +131,12 @@ ErrorOr<Vector<Group>> Group::all()
break; break;
Vector<DeprecatedString> members; Vector<DeprecatedString> members;
if (group->gr_mem) {
for (size_t i = 0; group->gr_mem[i]; ++i) for (size_t i = 0; group->gr_mem[i]; ++i)
members.append(group->gr_mem[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; return groups;