[binutils-gdb] libctf: link: remember to turn off the LCTF_LINKING flag after ctf_link_write

Nick Alcock nix@sourceware.org
Wed Jul 31 20:45:09 GMT 2024


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=58db4b3531774e64a37f724f020a431adc4250e5

commit 58db4b3531774e64a37f724f020a431adc4250e5
Author: Nick Alcock <nick.alcock@oracle.com>
Date:   Mon Jul 15 23:25:25 2024 +0100

    libctf: link: remember to turn off the LCTF_LINKING flag after ctf_link_write
    
    We set this flag at the top of ctf_link_write (to tell ctf_serialize, way
    down under the archive file writing functions, to do the various link- time
    serialization things like symbol filtering and the like), but we never
    remember to clear it except on error.  This is probably bad if you want to
    serialize the dict yourself directly in the future after linking it (which
    is...  definitely a *possible* use of the API, if rather strange).
    
    libctf/
            * ctf-link.c (ctf_link_write): Clear LCTF_LINKING before exit.

Diff:
---
 libctf/ctf-link.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/libctf/ctf-link.c b/libctf/ctf-link.c
index 7b68d709628..3bfc36ed9e1 100644
--- a/libctf/ctf-link.c
+++ b/libctf/ctf-link.c
@@ -2040,6 +2040,10 @@ ctf_link_write (ctf_dict_t *fp, size_t *size, size_t threshold)
 	goto err_no;
       }
 
+  /* Turn off the is-linking flag on all the dicts in this link.  */
+  for (i = 0; i < arg.i; i++)
+    arg.files[i]->ctf_flags &= ~LCTF_LINKING;
+
   *size = fsize;
   free (arg.names);
   free (arg.files);


More information about the Binutils-cvs mailing list