diff options
author | Robert Mustacchi <rm@joyent.com> | 2012-11-22 06:11:12 +0000 |
---|---|---|
committer | Robert Mustacchi <rm@joyent.com> | 2012-11-22 06:11:12 +0000 |
commit | eac066288b29211976a0add347eb3990834cddb0 (patch) | |
tree | 71e75ff46f596a67dd96e04cc31865f9aa3aad32 /usr/src/common/ctf/ctf_open.c | |
parent | 07de33ff39abfed09baa8bd74995810e038e675b (diff) | |
download | illumos-joyent-eac066288b29211976a0add347eb3990834cddb0.tar.gz |
OS-1474 Want ::typedef
OS-1598 Want mdb -e
OS-1600 Want an mdb test suite driver
OS-1632 mdb on x86 should be able to print alternate register names
OS-1699 libctf should support removing a dynamic type
OS-1700 libctf does not validate arrays correctly
OS-1701 libctf does not validate function types correctly
Diffstat (limited to 'usr/src/common/ctf/ctf_open.c')
-rw-r--r-- | usr/src/common/ctf/ctf_open.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/usr/src/common/ctf/ctf_open.c b/usr/src/common/ctf/ctf_open.c index e49a4cb329..2148389fff 100644 --- a/usr/src/common/ctf/ctf_open.c +++ b/usr/src/common/ctf/ctf_open.c @@ -24,8 +24,9 @@ * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - -#pragma ident "%Z%%M% %I% %E% SMI" +/* + * Copyright (c) 2012, Joyent, Inc. All rights reserved. + */ #include <ctf_impl.h> #include <sys/mman.h> @@ -810,8 +811,12 @@ ctf_close(ctf_file_t *fp) if (fp->ctf_parent != NULL) ctf_close(fp->ctf_parent); - for (dtd = ctf_list_next(&fp->ctf_dtdefs); dtd != NULL; dtd = ntd) { - ntd = ctf_list_next(dtd); + /* + * Note, to work properly with reference counting on the dynamic + * section, we must delete the list in reverse. + */ + for (dtd = ctf_list_prev(&fp->ctf_dtdefs); dtd != NULL; dtd = ntd) { + ntd = ctf_list_prev(dtd); ctf_dtd_delete(fp, dtd); } |