public inbox for libc-hacker@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] Don't crash in trace mode when dependencies are missing
@ 2010-04-14 11:13 Andreas Schwab
  2010-04-15  3:40 ` Ulrich Drepper
  2010-04-15  5:17 ` Ulrich Drepper
  0 siblings, 2 replies; 3+ messages in thread
From: Andreas Schwab @ 2010-04-14 11:13 UTC (permalink / raw)
  To: libc-hacker

2010-04-14  Andreas Schwab  <schwab@redhat.com>

	* elf/dl-version.c (_dl_check_map_versions): Avoid index overflow
	when dependencies are missing.
---
 elf/dl-version.c |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/elf/dl-version.c b/elf/dl-version.c
index 9e88116..c59a6c3 100644
--- a/elf/dl-version.c
+++ b/elf/dl-version.c
@@ -322,10 +322,14 @@ _dl_check_map_versions (struct link_map *map, int verbose, int trace_mode)
 	      while (1)
 		{
 		  ElfW(Half) ndx = aux->vna_other & 0x7fff;
-		  map->l_versions[ndx].hash = aux->vna_hash;
-		  map->l_versions[ndx].hidden = aux->vna_other & 0x8000;
-		  map->l_versions[ndx].name = &strtab[aux->vna_name];
-		  map->l_versions[ndx].filename = &strtab[ent->vn_file];
+		  /* In trace mode, dependencies may be missing.  */
+		  if (__builtin_expect (ndx < map->l_nversions, 1))
+		    {
+		      map->l_versions[ndx].hash = aux->vna_hash;
+		      map->l_versions[ndx].hidden = aux->vna_other & 0x8000;
+		      map->l_versions[ndx].name = &strtab[aux->vna_name];
+		      map->l_versions[ndx].filename = &strtab[ent->vn_file];
+		    }
 
 		  if (aux->vna_next == 0)
 		    /* No more symbols.  */
-- 
1.7.0.1


-- 
Andreas Schwab, schwab@redhat.com
GPG Key fingerprint = D4E8 DBE3 3813 BB5D FA84  5EC7 45C6 250E 6F00 984E
"And now for something completely different."

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] Don't crash in trace mode when dependencies are missing
  2010-04-14 11:13 [PATCH] Don't crash in trace mode when dependencies are missing Andreas Schwab
@ 2010-04-15  3:40 ` Ulrich Drepper
  2010-04-15  5:17 ` Ulrich Drepper
  1 sibling, 0 replies; 3+ messages in thread
From: Ulrich Drepper @ 2010-04-15  3:40 UTC (permalink / raw)
  To: libc-hacker

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

This patch targets the symptom.  The underlying problem is elsewhere.
And there are likely multiple problems.  I'm looking into this.

- -- 
➧ Ulrich Drepper ➧ Red Hat, Inc. ➧ 444 Castro St ➧ Mountain View, CA ❖
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAkvGipsACgkQ2ijCOnn/RHRi9QCgmD9x2CPofyAkY8axC4mZQjHv
Xp8AoIq3Lbg0qDTDtLqTEAEi232SmDG9
=Ymfm
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] Don't crash in trace mode when dependencies are missing
  2010-04-14 11:13 [PATCH] Don't crash in trace mode when dependencies are missing Andreas Schwab
  2010-04-15  3:40 ` Ulrich Drepper
@ 2010-04-15  5:17 ` Ulrich Drepper
  1 sibling, 0 replies; 3+ messages in thread
From: Ulrich Drepper @ 2010-04-15  5:17 UTC (permalink / raw)
  To: libc-hacker

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I did use the patch after all.  Other solutions are at least as expensive.

- -- 
➧ Ulrich Drepper ➧ Red Hat, Inc. ➧ 444 Castro St ➧ Mountain View, CA ❖
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEUEARECAAYFAkvGoUMACgkQ2ijCOnn/RHRSMgCfcDZMtnO11zT20TzGsk2P75AA
V0YAl3S2CtsSNzQCbu/oxRFt6BT6zZ4=
=5XRB
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-04-15  5:17 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-04-14 11:13 [PATCH] Don't crash in trace mode when dependencies are missing Andreas Schwab
2010-04-15  3:40 ` Ulrich Drepper
2010-04-15  5:17 ` Ulrich Drepper

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).