LibC: Move the static String in getlogin() out of the function

For some reason, this stops it from adding __cxa_guard_acquire/release
calls around its initialization. This unbreaks building ports.
This commit is contained in:
Andreas Kling 2020-09-01 16:15:30 +02:00
parent 27e86c03da
commit 386c7201d8
Notes: sideshowbarker 2024-07-19 02:56:59 +09:00

View file

@ -555,16 +555,17 @@ int set_process_icon(int icon_id)
__RETURN_WITH_ERRNO(rc, rc, -1);
}
static String getlogin_buffer;
char* getlogin()
{
static String buffer;
if (buffer.is_null()) {
if (getlogin_buffer.is_null()) {
if (auto* passwd = getpwuid(getuid())) {
buffer = String(passwd->pw_name);
getlogin_buffer = String(passwd->pw_name);
}
endpwent();
}
return const_cast<char*>(buffer.characters());
return const_cast<char*>(getlogin_buffer.characters());
}
int ftruncate(int fd, off_t length)