Whamcloud - gitweb
LU-3435 util: Improvement to error logging for l_getidentity
[fs/lustre-release.git] / lustre / utils / l_getidentity.c
index ff240eb..3729f3f 100644 (file)
@@ -137,7 +137,8 @@ int get_groups_local(struct identity_downcall_data *data,
        groups_tmp = malloc(maxgroups * sizeof(gid_t));
        if (groups_tmp == NULL) {
                free(pw_name);
-               errlog("malloc error\n");
+               data->idd_err = errno ? errno : ENOMEM;
+               errlog("malloc error=%u\n",data->idd_err);
                return -1;
        }
 
@@ -146,7 +147,9 @@ int get_groups_local(struct identity_downcall_data *data,
            0) {
                free(pw_name);
                free(groups_tmp);
-               errlog("getgrouplist() error\n");
+               data->idd_err = errno ? errno : EIDRM;
+               errlog("getgrouplist() error for uid %u: error=%u\n",
+                       data->idd_uid, data->idd_err);
                return -1;
        }
 
@@ -428,6 +431,10 @@ int main(int argc, char **argv)
         maxgroups = sysconf(_SC_NGROUPS_MAX);
         if (maxgroups > NGROUPS_MAX)
                 maxgroups = NGROUPS_MAX;
+       if (maxgroups == -1) {
+               rc = -EINVAL;
+               goto out;
+       }
 
         size = offsetof(struct identity_downcall_data, idd_groups[maxgroups]);
         data = malloc(size);