<div dir="ltr">Reviewed-by: Plamena Manolova <<a href="mailto:plamena.manolova@intel.com">plamena.manolova@intel.com</a>></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 16, 2017 at 8:10 AM, Tapani Pälli <span dir="ltr"><<a href="mailto:tapani.palli@intel.com" target="_blank">tapani.palli@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">According to dl_iterate_phdr man page first object visited is the<br>
main program where dlpi_name is an empty string. This fixes segfault<br>
on Android when using build-id as identifier.<br>
<br>
Signed-off-by: Tapani Pälli <<a href="mailto:tapani.palli@intel.com">tapani.palli@intel.com</a>><br>
---<br>
src/util/build_id.c | 6 ++++++<br>
1 file changed, 6 insertions(+)<br>
<br>
diff --git a/src/util/build_id.c b/src/util/build_id.c<br>
index c53e71d..797ea22 100644<br>
--- a/src/util/build_id.c<br>
+++ b/src/util/build_id.c<br>
@@ -55,6 +55,12 @@ build_id_find_nhdr_callback(<wbr>struct dl_phdr_info *info, size_t size, void *data_)<br>
{<br>
struct callback_data *data = data_;<br>
<br>
+ /* The first object visited by callback is the main program.<br>
+ * For the main program, the dlpi_name field will be an empty string.<br>
+ */<br>
+ if (info->dlpi_name == NULL)<br>
+ return 0;<br>
+<br>
char *ptr = strstr(info->dlpi_name, data->filename);<br>
if (ptr == NULL || ptr[strlen(data->filename)] != '\0')<br>
return 0;<br>
<span class="HOEnZb"><font color="#888888">--<br>
2.9.3<br>
<br>
______________________________<wbr>_________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/mesa-dev</a><br>
</font></span></blockquote></div><br></div>