aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeather McIntyre <hsm2@rice.edu>2023-10-10 13:16:03 +0200
committerMark Wielaard <mark@klomp.org>2023-10-14 16:55:19 +0200
commit10aa68e6ed13772e520f1bc2dac3dd6e07d8991c (patch)
tree175f13194fc73a727d929bf642cf6b32c0e4802d
parent4ecc50a568a8d8b4ddbc924a37d0364b2ae6ba69 (diff)
downloadelfutils-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.c5
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. */