[02/19] SAFE_BYTE_GET_INTERNAL

Message ID 20210515080957.20305-3-amodra@gmail.com
State New
Headers show
Series
  • Pointer UB in binutils/dwarf.c
Related show

Commit Message

Andreas Krebbel via Binutils May 15, 2021, 8:09 a.m.
We won't want this assert triggering in the next release.

	* dwarf.c (SAFE_BYTE_GET_INTERNAL): Assert only when ENABLE_CHECKING.

Patch

diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 020b7e071ec..3a1c18e082f 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -390,8 +390,11 @@  read_leb128 (unsigned char *data,
 		 (int) amount, (int) sizeof (VAL));			\
 	  amount = sizeof (VAL);					\
 	}								\
-      assert ((PTR) <= (END));						\
+      if (ENABLE_CHECKING)						\
+	assert ((PTR) <= (END));					\
       size_t avail = (END) - (PTR);					\
+      if ((PTR) > (END))						\
+	avail = 0;							\
       if (amount > avail)						\
 	amount = avail;							\
       if (amount == 0)							\