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 <[email protected]> --- 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 _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
