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 4fc21cb..1c24a2d 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 @@ -480,9 +480,12 @@ static int create_container_directories(const char* user, const char *app_id, * Load the user information for a given user name. */ 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)); + long string_size = sysconf(_SC_GETPW_R_SIZE_MAX); 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); @@ -1218,7 +1221,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);