diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index 3066b1edb16..816819388c2 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -500,6 +500,9 @@ Release 2.4.0 - UNRELEASED HADOOP-10399. FileContext API for ACLs. (Vinayakumar B via cnauroth) + HADOOP-10442. Group look-up can cause segmentation fault when certain + JNI-based mapping module is used. (Kihwal Lee via jeagles) + Release 2.3.1 - UNRELEASED INCOMPATIBLE CHANGES diff --git a/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/security/hadoop_user_info.c b/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/security/hadoop_user_info.c index 5c58b96c39e..1bd7bdc6c1e 100644 --- a/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/security/hadoop_user_info.c +++ b/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/security/hadoop_user_info.c @@ -178,6 +178,11 @@ int hadoop_user_info_getgroups(struct hadoop_user_info *uinfo) return ret; } return 0; + } else if (ret != -1) { + // Any return code that is not -1 is considered as error. + // Since the user lookup was successful, there should be at least one + // group for this user. + return EIO; } ngids = realloc(uinfo->gids, sizeof(uinfo->gids[0]) * ngroups); if (!ngids) {