public inbox for dwz@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] Error out on invalid locexpr length
@ 2019-01-01  0:00 Tom de Vries
  2019-01-01  0:00 ` Tom de Vries
  2019-01-01  0:00 ` [committed] " Tom de Vries
  0 siblings, 2 replies; 4+ messages in thread
From: Tom de Vries @ 2019-01-01  0:00 UTC (permalink / raw)
  To: dwz, jakub

Hi,

When invoking dwz with a file containing an invalid locexpr length, we can run
into this assertion:
...
dwz: dwz.c:1722: read_loclist: Assertion `ptr + len <= endsec' failed.
Aborted (core dumped)
...

Change the assert into an error:
...
dwz: a.out: locexpr length 0x4ef exceeds .debug_loc section
...

OK for trunk?

Thanks,
- Tom

Error out on invalid locexpr length

2019-02-14  Tom de Vries  <tdevries@suse.de>

	PR dwz/24172
	* dwz.c (read_loclist): Change assert (ptr + len <= endsec) into an
	error.

---
 dwz.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/dwz.c b/dwz.c
index 4ef8657..a876ab2 100644
--- a/dwz.c
+++ b/dwz.c
@@ -1719,7 +1719,13 @@ read_loclist (DSO *dso, dw_die_ref die, GElf_Addr offset)
 	continue;
 
       len = read_16 (ptr);
-      assert (ptr + len <= endsec);
+      if (!(ptr + len <= endsec))
+	{
+	  error (0, 0,
+		 "%s: locexpr length 0x%Lx exceeds .debug_loc section",
+		 dso->filename, (long long) len);
+	  return 1;
+	}
 
       if (read_exprloc (dso, die, ptr, len, &need_adjust))
 	return 1;

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

end of thread, other threads:[~2019-04-24 10:38 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-01  0:00 [PATCH] Error out on invalid locexpr length Tom de Vries
2019-01-01  0:00 ` Tom de Vries
2019-01-01  0:00   ` Tom de Vries
2019-01-01  0:00 ` [committed] " Tom de Vries

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).