From 3ef6e31ded51964502e2702ace6443a42fef0eca Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Tue, 18 May 2021 08:08:30 +0200 Subject: [PATCH] LibC: Use ptsname_r() instead of ptsname() in openpty() (#7231) This improves thread-safety because ptsname() is using a global buffer that is shared between threads. --- Userland/Libraries/LibC/pty.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibC/pty.cpp b/Userland/Libraries/LibC/pty.cpp index b2ad1e10ba..19706951a6 100644 --- a/Userland/Libraries/LibC/pty.cpp +++ b/Userland/Libraries/LibC/pty.cpp @@ -34,8 +34,9 @@ int openpty(int* amaster, int* aslave, char* name, const struct termios* termp, return -1; } - const char* tty_name = ptsname(*amaster); - if (!tty_name) { + char tty_name[32]; + int rc = ptsname_r(*amaster, tty_name, sizeof(tty_name)); + if (rc < 0) { int error = errno; close(*amaster); errno = error;