diff --git a/src/apps/terminal/Shell.cpp b/src/apps/terminal/Shell.cpp index 5dd91d47dd..ebfe8f270d 100644 --- a/src/apps/terminal/Shell.cpp +++ b/src/apps/terminal/Shell.cpp @@ -400,8 +400,9 @@ Shell::_Spawn(int row, int col, const ShellParameters& parameters) char stringBuffer[256]; if (argv == NULL || argc == 0) { - if (!getpwuid_r(getuid(), &passwdStruct, stringBuffer, - sizeof(stringBuffer), &passwdResult)) { + if (getpwuid_r(getuid(), &passwdStruct, stringBuffer, + sizeof(stringBuffer), &passwdResult) == 0 + && passwdResult != NULL) { defaultArgs[0] = passwdStruct.pw_shell; } diff --git a/src/system/libroot/os/find_directory.cpp b/src/system/libroot/os/find_directory.cpp index a1351e6c2f..aca0df4e59 100644 --- a/src/system/libroot/os/find_directory.cpp +++ b/src/system/libroot/os/find_directory.cpp @@ -381,7 +381,8 @@ find_directory(directory_which which, dev_t device, bool createIt, struct passwd *pw; if (getpwuid_r(geteuid(), &pwBuffer, pwStringBuffer, - sizeof(pwStringBuffer), &pw) == 0) { + sizeof(pwStringBuffer), &pw) == 0 + && pw != NULL) { home = pw->pw_dir; } #endif // USE_PWENTS