diff --git a/flang/runtime/extensions.cpp b/flang/runtime/extensions.cpp index 352da8f11d9d5..f72acf83a4409 100644 --- a/flang/runtime/extensions.cpp +++ b/flang/runtime/extensions.cpp @@ -108,13 +108,12 @@ void FORTRAN_PROCEDURE_NAME(getlog)(std::byte *arg, std::int64_t length) { if (nameMaxLen == -1) nameMaxLen = _POSIX_LOGIN_NAME_MAX + 1; #endif - std::vector str(nameMaxLen); + char str[nameMaxLen]; - int error{getlogin_r(str.data(), nameMaxLen)}; + int error{getlogin_r(str, nameMaxLen)}; if (error == 0) { // no error: find first \0 in string then pad from there - CopyAndPad(reinterpret_cast(arg), str.data(), length, - std::strlen(str.data())); + CopyAndPad(reinterpret_cast(arg), str, length, std::strlen(str)); } else { // error occur: get username from environment variable GetUsernameEnvVar("LOGNAME", arg, length);