diff options
author | Heather McIntyre <hsm2@rice.edu> | 2023-10-10 13:16:03 +0200 |
---|---|---|
committer | Mark Wielaard <mark@klomp.org> | 2023-10-14 16:55:19 +0200 |
commit | 10aa68e6ed13772e520f1bc2dac3dd6e07d8991c (patch) | |
tree | 175f13194fc73a727d929bf642cf6b32c0e4802d | |
parent | 4ecc50a568a8d8b4ddbc924a37d0364b2ae6ba69 (diff) | |
download | elfutils-10aa68e6ed13772e520f1bc2dac3dd6e07d8991c.tar.gz |
libelf: Fix elf_end deadlock
* libelf/elf_end.c (elf_end): Add rwlock_unlock before
early return.
Signed-off-by: Heather S. McIntyre <hsm2@rice.edu>
Signed-off-by: Mark Wielaard <mark@klomp.org>
-rw-r--r-- | libelf/elf_end.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libelf/elf_end.c b/libelf/elf_end.c index 89727cb3..80f4d13f 100644 --- a/libelf/elf_end.c +++ b/libelf/elf_end.c @@ -82,7 +82,10 @@ elf_end (Elf *elf) elf->state.ar.ar_sym = NULL; if (elf->state.ar.children != NULL) - return 0; + { + rwlock_unlock(elf->lock); + return 0; + } } /* Remove this structure from the children list. */ |