X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Futils%2Fl_getidentity.c;h=a15eaf9a4a27b4cf3e4c070232c1f72b5cae9d70;hp=ff240eb8e9a95d2b9cacec3c469d67639bb43462;hb=281671b5ee43c2aea5d5b708aadf10fd1df45b16;hpb=08aa217ce49aba1ded52e0f7adb8a607035123fd diff --git a/lustre/utils/l_getidentity.c b/lustre/utils/l_getidentity.c index ff240eb..a15eaf9 100644 --- a/lustre/utils/l_getidentity.c +++ b/lustre/utils/l_getidentity.c @@ -48,7 +48,7 @@ #include #include -#include +#include #include #include @@ -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);