Calling ctf_import (fp, NULL) to cancel out a pre-existing import leaked
the refcnt increment on the parent, so it could never be freed.
New in v4.
libctf/
* ctf-open.c (ctf_import): Do not leak a ctf_file_t ref on every
ctf_import after the first for a given file.
+2019-09-23 Nick Alcock <nick.alcock@oracle.com>
+
+ * ctf-open.c (ctf_import): Do not leak a ctf_file_t ref on every
+ ctf_import after the first for a given file.
+
2019-09-23 Nick Alcock <nick.alcock@oracle.com>
* ctf-impl.h (ctf_str_append_noerr): Declare.
if (fp->ctf_parent != NULL)
{
+ fp->ctf_parent->ctf_refcnt--;
ctf_file_close (fp->ctf_parent);
fp->ctf_parent = NULL;
}
fp->ctf_flags |= LCTF_CHILD;
pfp->ctf_refcnt++;
}
+
fp->ctf_parent = pfp;
return 0;
}