From 4f703e07434fb0f123eba1dfa412ed4b8535421d Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Tue, 15 Jun 2010 20:42:41 -0700 Subject: elf_clone vs ELF_K_AR --- libelf/ChangeLog | 4 ++++ libelf/elf_clone.c | 10 +++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/libelf/ChangeLog b/libelf/ChangeLog index c1479ae4..3aff0cf7 100644 --- a/libelf/ChangeLog +++ b/libelf/ChangeLog @@ -1,3 +1,7 @@ +2009-08-05 Roland McGrath + + * elf_clone.c: Chain onto the ELF->parent->state.ar.children list. + 2010-06-14 Ulrich Drepper * gelf_update_shdr.c: Implicitly set ELF_F_DIRTY bit. diff --git a/libelf/elf_clone.c b/libelf/elf_clone.c index 8b699fa6..8ed42a60 100644 --- a/libelf/elf_clone.c +++ b/libelf/elf_clone.c @@ -1,5 +1,5 @@ /* Create clone of a given descriptor. - Copyright (C) 2003, 2004 Red Hat, Inc. + Copyright (C) 2003, 2004, 2009 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper , 2003. @@ -92,6 +92,14 @@ elf_clone (Elf *elf, Elf_Cmd cmd) retval->state.elf32.scns.max = elf->state.elf32.scns.max; retval->class = elf->class; + + if (retval->parent != NULL) + { + /* Enlist this new descriptor in the list of children. */ + assert (retval->parent->kind == ELF_K_AR); + retval->next = retval->parent->state.ar.children; + retval->parent->state.ar.children = retval; + } } /* Release the lock. */ -- cgit v1.2.1