in src/oslogin_utils.cc [638:675]
bool ParseJsonToGroup(const string& json, struct group* result, BufferManager*
buf, int* errnop) {
bool ret = false;
*errnop = EINVAL;
int gr_gid = 65535;
json_object* group = ParseJsonRoot(json);
if (group == NULL) {
return false;
}
json_object* gid;
if (!json_object_object_get_ex(group, "gid", &gid)) {
goto cleanup;
}
json_object* name;
if (!json_object_object_get_ex(group, "name", &name)) {
goto cleanup;
}
if ((gr_gid = json_object_get_int64(gid)) == 0) {
goto cleanup;
}
result->gr_gid = gr_gid;
if (!buf->AppendString("", &result->gr_passwd, errnop))
goto cleanup;
if (!buf->AppendString(json_object_get_string(name), &result->gr_name,
errnop))
goto cleanup;
*errnop = 0;
ret = true;
cleanup:
json_object_put(group);
return ret;
}