util/build-id: check dlpi_name before strstr call
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.
Fixes: d4fa083e11
("util: Add utility build-id code.")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Plamena Manolova <plamena.manolova@intel.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
4d4558411d
commit
70d25cae8b
|
@ -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.
|
||||
* Android's libc returns a NULL pointer for the first executable.
|
||||
*/
|
||||
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;
|
||||
|
|
Loading…
Reference in New Issue