Fix list pointer bug in proxy

This commit is contained in:
2023-01-12 01:58:14 +01:00
parent 820ce8dac9
commit 07d6280864
9 changed files with 23 additions and 29 deletions

View File

@ -165,14 +165,15 @@ static int logger_remaining(void) {
void logger_set_name(const char *restrict format, ...) {
va_list args;
void *ptr;
if (key_name == -1) {
// not initialized
va_start(args, format);
vsnprintf(global_name, sizeof(global_name), format, args);
ptr = global_name;
} else {
int ret;
void *ptr = pthread_getspecific(key_name);
if (!ptr) {
if ((ptr = pthread_getspecific(key_name)) == NULL) {
ptr = malloc(LOG_NAME_LEN);
if ((ret = pthread_setspecific(key_name, ptr)) != 0) {
errno = ret;
@ -185,6 +186,9 @@ void logger_set_name(const char *restrict format, ...) {
vsnprintf(ptr, LOG_NAME_LEN, format, args);
}
// set thread name
pthread_setname_np(pthread_self(), global_name);
// cleanup
va_end(args);
}