diff options
author | Thomas Haller <thaller@redhat.com> | 2021-06-30 23:18:22 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2021-07-05 14:51:27 +0200 |
commit | 5bc39d97834c5ba9d81e6f38e07f19eb4e9fd398 (patch) | |
tree | 9fb0495180754f635089fe336a909bfe37aa4948 | |
parent | bec4a40437e4120cf115771b03f4aa5f0fa5fef4 (diff) | |
download | NetworkManager-5bc39d97834c5ba9d81e6f38e07f19eb4e9fd398.tar.gz |
glib-aux: fix releasing thread-local storage from nm_strerror_native()
The previous implementation was just wrong.
Fixes: e1ca3bf7ed40 ('shared: add nm_strerror_native() to replace strerror() and g_strerror()')
-rw-r--r-- | src/libnm-glib-aux/nm-errno.c | 14 |
1 files changed, 1 insertions, 13 deletions
diff --git a/src/libnm-glib-aux/nm-errno.c b/src/libnm-glib-aux/nm-errno.c index 283173e328..0426a21d40 100644 --- a/src/libnm-glib-aux/nm-errno.c +++ b/src/libnm-glib-aux/nm-errno.c @@ -7,8 +7,6 @@ #include "nm-errno.h" -#include <pthread.h> - /*****************************************************************************/ static NM_UTILS_LOOKUP_STR_DEFINE( @@ -162,19 +160,9 @@ nm_strerror_native(int errsv) buf = buf_static; if (G_UNLIKELY(!buf)) { - int errno_saved = errno; - pthread_key_t key; - buf = g_malloc(NM_STRERROR_BUFSIZE); buf_static = buf; - - if (pthread_key_create(&key, g_free) != 0 || pthread_setspecific(key, buf) != 0) { - /* Failure. We will leak the buffer when the thread exits. - * - * Nothing we can do about it really. For Debug builds we fail with an assertion. */ - nm_assert_not_reached(); - } - errno = errno_saved; + nm_utils_thread_local_register_destroy(buf, g_free); } return nm_strerror_native_r(errsv, buf, NM_STRERROR_BUFSIZE); |