]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
resolv_conf: release lock on allocation failure (bug 30527)
authorAndreas Schwab <schwab@suse.de>
Wed, 7 Jun 2023 09:21:48 +0000 (11:21 +0200)
committerAndreas Schwab <schwab@suse.de>
Wed, 7 Jun 2023 10:44:25 +0000 (12:44 +0200)
When the initial allocation of global fails, the local lock is left
locked.

Reported by Steffen Lammel of SAP HANA development.

resolv/resolv_conf.c

index bd5890773bfc8b6ef02b48a087fca9bbfbcc8d20..8bc9edc634a58040ed850785d2ec890d408591b8 100644 (file)
@@ -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);
     }