diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index e0f2c524ab..f2a518ef27 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -408,6 +408,9 @@ Release 2.8.0 - UNRELEASED YARN-2921. Fix MockRM/MockAM#waitForState sleep too long. (Tsuyoshi Ozawa via wangda) + YARN-1519. Check in container-executor if sysconf is implemented before + using it (Radim Kolar and Eric Payne via raviprak) + Release 2.7.1 - UNRELEASED INCOMPATIBLE CHANGES diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/impl/container-executor.c b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/impl/container-executor.c index 485399a0d4..ff28d30eef 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/impl/container-executor.c +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/impl/container-executor.c @@ -631,8 +631,11 @@ static int create_container_directories(const char* user, const char *app_id, */ static struct passwd* get_user_info(const char* user) { int string_size = sysconf(_SC_GETPW_R_SIZE_MAX); - void* buffer = malloc(string_size + sizeof(struct passwd)); struct passwd *result = NULL; + if(string_size < 1024) { + string_size = 1024; + } + void* buffer = malloc(string_size + sizeof(struct passwd)); if (getpwnam_r(user, buffer, buffer + sizeof(struct passwd), string_size, &result) != 0) { free(buffer); @@ -1425,7 +1428,7 @@ void chown_dir_contents(const char *dir_path, uid_t uid, gid_t gid) { dp = opendir(dir_path); if (dp != NULL) { - while (ep = readdir(dp)) { + while ((ep = readdir(dp)) != NULL) { stpncpy(buf, ep->d_name, strlen(ep->d_name)); buf[strlen(ep->d_name)] = '\0'; change_owner(path_tmp, uid, gid); @@ -1545,4 +1548,4 @@ int traffic_control_read_state(char *command_file) { */ int traffic_control_read_stats(char *command_file) { return run_traffic_control(TC_READ_STATS_OPTS, command_file); -} \ No newline at end of file +}