From: Heather McIntyre <h...@rice.edu> * libelf/elf_readall.c (__libelf_readall): Move rwlock_unlock before libelf_acquire_all.
Signed-off-by: Heather S. McIntyre <h...@rice.edu> Signed-off-by: Mark Wielaard <m...@klomp.org> --- libelf/elf_readall.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libelf/elf_readall.c b/libelf/elf_readall.c index d0f9a28c..2d62d447 100644 --- a/libelf/elf_readall.c +++ b/libelf/elf_readall.c @@ -84,6 +84,7 @@ __libelf_readall (Elf *elf) /* If this is an archive and we have derived descriptors get the locks for all of them. */ + rwlock_unlock(elf->lock); // lock will be reacquired next line libelf_acquire_all (elf); if (elf->maximum_size == ~((size_t) 0)) @@ -141,10 +142,8 @@ __libelf_readall (Elf *elf) __libelf_seterrno (ELF_E_NOMEM); /* Free the locks on the children. */ - libelf_release_all (elf); + libelf_release_all (elf); // lock is released } - rwlock_unlock (elf->lock); - return (char *) elf->map_address; } -- 2.41.0