[PATCH] resolv_conf: release lock on allocation failure (bug 30527)
Florian Weimer
fweimer@redhat.com
Wed Jun 7 09:57:57 GMT 2023
* Andreas Schwab via Libc-alpha:
> When the initial allocation of global fails, the local lock is left
> locked.
> ---
> resolv/resolv_conf.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> 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);
> }
> --
Okay.
Thanks,
Florian
More information about the Libc-alpha
mailing list