[Mesa-dev] [PATCH] util/build-id: check dlpi_name before strstr call

Tapani Pälli tapani.palli at intel.com
Thu Mar 16 06:10:57 UTC 2017


According to dl_iterate_phdr man page first object visited is the
main program where dlpi_name is an empty string. This fixes segfault
on Android when using build-id as identifier.

Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
---
 src/util/build_id.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/util/build_id.c b/src/util/build_id.c
index c53e71d..797ea22 100644
--- a/src/util/build_id.c
+++ b/src/util/build_id.c
@@ -55,6 +55,12 @@ build_id_find_nhdr_callback(struct dl_phdr_info *info, size_t size, void *data_)
 {
    struct callback_data *data = data_;
 
+   /* The first object visited by callback is the main program.
+    * For the main program, the dlpi_name field will be an empty string.
+    */
+   if (info->dlpi_name == NULL)
+      return 0;
+
    char *ptr = strstr(info->dlpi_name, data->filename);
    if (ptr == NULL || ptr[strlen(data->filename)] != '\0')
       return 0;
-- 
2.9.3



More information about the mesa-dev mailing list