On Sun, Jan 19, 2025 at 10:20:29PM -0500, Aaron Merey wrote: > * libdw/dwarf_filesrc.c (dwarf_filesrc): Use dwarf_lock.
I didn't got this patch till I saw 06/15 Add Dwarf member to Dwarf_Lines and Dwarf_Files. So this patch should at least come after that. In general I find it a little difficult to understand the locking of the Dwarf_Lines and Dwarf_Files structure of a Dwarf. Maybe some of these patches need reordering and maybe squashing? > diff --git a/libdw/dwarf_filesrc.c b/libdw/dwarf_filesrc.c > index d866ce72..a0881f36 100644 > --- a/libdw/dwarf_filesrc.c > +++ b/libdw/dwarf_filesrc.c > @@ -38,14 +38,23 @@ const char * > dwarf_filesrc (Dwarf_Files *file, size_t idx, Dwarf_Word *mtime, > Dwarf_Word *length) > { > - if (file == NULL || idx >= file->nfiles) > + if (file == NULL) > return NULL; > > + mutex_lock (file->dbg->dwarf_lock); > + if (idx >= file->nfiles) > + { > + mutex_unlock (file->dbg->dwarf_lock); > + return NULL; > + } > + > if (mtime != NULL) > *mtime = file->info[idx].mtime; > > if (length != NULL) > *length = file->info[idx].length; > > - return file->info[idx].name; > + const char *res = file->info[idx].name; > + mutex_unlock (file->dbg->dwarf_lock); > + return res; > } If Dwarf_Files had a Dwarf dbg field then this should work (locally). But I need to read the other patches to see if there are any interactions. Cheers, Mark