diff options
author | Andreas Schwab <schwab@suse.de> | 2023-06-07 11:21:48 +0200 |
---|---|---|
committer | Andreas Schwab <schwab@suse.de> | 2023-06-07 12:44:25 +0200 |
commit | abcf8db7fa46b73fd5b8193ce11f9312301b84c7 (patch) | |
tree | 31f0e70962fe7b942ee8868b3fdc3b97f0206026 | |
parent | 85e6d8b4175fcb195011a0a1bad37d6f3b2355db (diff) | |
download | glibc-abcf8db7fa46b73fd5b8193ce11f9312301b84c7.tar.gz glibc-abcf8db7fa46b73fd5b8193ce11f9312301b84c7.tar.xz glibc-abcf8db7fa46b73fd5b8193ce11f9312301b84c7.zip |
resolv_conf: release lock on allocation failure (bug 30527)
When the initial allocation of global fails, the local lock is left locked. Reported by Steffen Lammel of SAP HANA development.
-rw-r--r-- | resolv/resolv_conf.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/resolv/resolv_conf.c b/resolv/resolv_conf.c index bd5890773b..8bc9edc634 100644 --- a/resolv/resolv_conf.c +++ b/resolv/resolv_conf.c @@ -93,7 +93,10 @@ get_locked_global (void) { global_copy = calloc (1, sizeof (*global)); if (global_copy == NULL) - return NULL; + { + __libc_lock_unlock (lock); + return NULL; + } atomic_store_relaxed (&global, global_copy); resolv_conf_array_init (&global_copy->array); } |