- if (sparam.idd_ngroups) {
- size = offsetof(struct identity_downcall_data,
- idd_groups[sparam.idd_ngroups]);
- OBD_ALLOC(param, size);
- if (!param) {
- CERROR("%s: fail to alloc %d bytes for uid %u"
- " with %d groups\n", obd->obd_name, size,
- sparam.idd_uid, sparam.idd_ngroups);
- param = &sparam;
- param->idd_ngroups = 0;
- } else if (cfs_copy_from_user(param, buffer, size)) {
- CERROR("%s: uid %u bad supplementary group data\n",
- obd->obd_name, sparam.idd_uid);