X-Git-Url: https://git.saurik.com/apple/libc.git/blobdiff_plain/3d9156a7a519a5e3aa1b92e9d9d4b991f1aed7ff..6465356a983ac139f81d3b7913cdb548477c346c:/gen/setlogin.c diff --git a/gen/setlogin.c b/gen/setlogin.c index 174dea7..b81cb1f 100644 --- a/gen/setlogin.c +++ b/gen/setlogin.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. + * Copyright (c) 2006 Apple Computer, Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -55,12 +55,25 @@ #include +#include +#include +#include -extern int _setlogin(const char* name); +extern int __setlogin(const char* name); -extern int _logname_valid; /* shared with getlogin() */ +extern pthread_mutex_t __logname_mutex; +extern char *__logname; int setlogin(const char* name) { - return (_logname_valid = _setlogin(name)); + pthread_mutex_lock(&__logname_mutex); + + int res = __setlogin(name); + if (res == 0 && __logname != NULL) { + __logname[0] = 0; + } + + pthread_mutex_unlock(&__logname_mutex); + + return res; }