* libdw/dwarf_filesrc.c (dwarf_filesrc): Use dwarf_lock.
Signed-off-by: Aaron Merey <[email protected]>
---
libdw/dwarf_filesrc.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
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;
}
--
2.47.1