Merge pull request #4486 from rlefko/fix-pthread-init-memleak

Fix memory leak in pthread init functions on failure
This commit is contained in:
Yann Collet 2025-09-19 21:42:21 -08:00 committed by GitHub
commit 085cc9319a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -143,7 +143,14 @@ int ZSTD_pthread_mutex_init(ZSTD_pthread_mutex_t* mutex, pthread_mutexattr_t con
*mutex = (pthread_mutex_t*)ZSTD_malloc(sizeof(pthread_mutex_t));
if (!*mutex)
return 1;
return pthread_mutex_init(*mutex, attr);
{
int const ret = pthread_mutex_init(*mutex, attr);
if (ret != 0) {
ZSTD_free(*mutex);
*mutex = NULL;
}
return ret;
}
}
int ZSTD_pthread_mutex_destroy(ZSTD_pthread_mutex_t* mutex)
@ -164,7 +171,14 @@ int ZSTD_pthread_cond_init(ZSTD_pthread_cond_t* cond, pthread_condattr_t const*
*cond = (pthread_cond_t*)ZSTD_malloc(sizeof(pthread_cond_t));
if (!*cond)
return 1;
return pthread_cond_init(*cond, attr);
{
int const ret = pthread_cond_init(*cond, attr);
if (ret != 0) {
ZSTD_free(*cond);
*cond = NULL;
}
return ret;
}
}
int ZSTD_pthread_cond_destroy(ZSTD_pthread_cond_t* cond)