From db1fcc1dca12a1976b776f3f211aa98c1e9b4ea0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C5=8Dshin?= Date: Thu, 4 Jan 2024 22:56:06 -0500 Subject: [PATCH] Store StrlenDevFd in n --- libc/calls/getprogramexecutablename.greg.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libc/calls/getprogramexecutablename.greg.c b/libc/calls/getprogramexecutablename.greg.c index ddb01b752..24e01adc8 100644 --- a/libc/calls/getprogramexecutablename.greg.c +++ b/libc/calls/getprogramexecutablename.greg.c @@ -180,10 +180,10 @@ static inline void InitProgramExecutableNameImpl(void) { empty string to obviate the TOCTOU problem between loader and binary. */ if (!(b = DevFd()) || - 0 != strncmp(b, __program_executable_name, StrlenDevFd()) || - !__program_executable_name[StrlenDevFd()] || - __program_executable_name[StrlenDevFd()] == '.' || - strchr(__program_executable_name + StrlenDevFd(), '/')) { + 0 != strncmp(b, __program_executable_name, (n = StrlenDevFd())) || + !__program_executable_name[n] || + __program_executable_name[n] == '.' || + strchr(__program_executable_name + n, '/')) { goto UseEmpty; } }