[PATCH] Don't crash when dependencies are missing
Aurelien Jarno
aurelien@aurel32.net
Sun Aug 21 21:38:00 GMT 2011
On Thu, Feb 17, 2011 at 01:46:22PM +0100, Andreas Schwab wrote:
> 2011-02-17 Andreas Schwab <schwab@redhat.com>
>
> [BZ #12454]
> * elf/dl-deps.c (_dl_map_object_deps): Signal error early when
> dependencies are missing.
> ---
> elf/dl-deps.c | 8 ++++----
> 1 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/elf/dl-deps.c b/elf/dl-deps.c
> index c32ae02..845735d 100644
> --- a/elf/dl-deps.c
> +++ b/elf/dl-deps.c
> @@ -492,6 +492,10 @@ _dl_map_object_deps (struct link_map *map,
> if (errno == 0 && errno_saved != 0)
> __set_errno (errno_saved);
>
> + if (errno_reason)
> + _dl_signal_error (errno_reason == -1 ? 0 : errno_reason, objname,
> + NULL, errstring);
> +
> struct link_map **old_l_initfini = NULL;
> if (map->l_initfini != NULL && map->l_type == lt_loaded)
> {
> @@ -685,8 +689,4 @@ Filters not supported with LD_TRACE_PRELINKING"));
> }
> if (old_l_initfini != NULL)
> _dl_scope_free (old_l_initfini);
> -
> - if (errno_reason)
> - _dl_signal_error (errno_reason == -1 ? 0 : errno_reason, objname,
> - NULL, errstring);
> }
This patch seems to cause issue with mozilla related packages like
firefox, thunderbird and derivatives, only in some conditions that I
haven't yet understood. The error looks like:
/usr/lib/icedove/icedove-bin: symbol lookup error: /usr/lib/icedove/components/libdbusservice.so: undefined symbol: NS_Alloc
or
/usr/lib/icedove/icedove-bin: symbol lookup error: /usr/lib/icedove/components/libmailcomps.so: undefined symbol: NS_CStringContainerInit
Reverting this patch fixes or workarounds the issue, as using
LD_BIND_NOW=1.
--
Aurelien Jarno GPG: 1024D/F1BCDB73
aurelien@aurel32.net http://www.aurel32.net
More information about the Libc-alpha
mailing list