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

Manolova, Plamena plamena.manolova at intel.com
Thu Mar 16 11:22:28 UTC 2017


Reviewed-by: Plamena Manolova <plamena.manolova at intel.com>

On Thu, Mar 16, 2017 at 8:10 AM, Tapani Pälli <tapani.palli at intel.com>
wrote:

> 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
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170316/d3458b5d/attachment-0001.html>


More information about the mesa-dev mailing list