in src/oslogin_utils.cc [906:930]
bool AddUsersToGroup(std::vector<string> users, struct group* result,
BufferManager* buf, int* errnop) {
if (users.size() < 1) {
return true;
}
// Get some space for the char* array for number of users + 1 for NULL cap.
char** bufp;
if (!(bufp =
(char**)buf->Reserve(sizeof(char*) * (users.size() + 1), errnop))) {
return false;
}
result->gr_mem = bufp;
for (int i = 0; i < (int)users.size(); i++) {
if (!buf->AppendString(users[i], bufp, errnop)) {
result->gr_mem = NULL;
return false;
}
bufp++;
}
*bufp = NULL; // End the array with a null pointer.
return true;
}