From 58f91db50088476b0aea87a69d6ec527ccffeed5 Mon Sep 17 00:00:00 2001 From: wennmach Date: Tue, 21 Oct 2003 14:19:37 +0000 Subject: Add bounds checking for prologue buffer. This avoids avr-gdb crashes when debugging programs without prologue. Patch provided by Karl Janmar < karl -AT- utopiafoundation -DOT- org > in PR pkg/23154 --- cross/avr-gdb/Makefile | 3 ++- cross/avr-gdb/distinfo | 3 ++- cross/avr-gdb/patches/patch-ab | 16 ++++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 cross/avr-gdb/patches/patch-ab (limited to 'cross/avr-gdb') diff --git a/cross/avr-gdb/Makefile b/cross/avr-gdb/Makefile index e663ef27c16..acf78f61496 100644 --- a/cross/avr-gdb/Makefile +++ b/cross/avr-gdb/Makefile @@ -1,8 +1,9 @@ -# $NetBSD: Makefile,v 1.3 2003/07/22 18:09:13 wennmach Exp $ +# $NetBSD: Makefile,v 1.4 2003/10/21 14:19:37 wennmach Exp $ # FreeBSD Id: ports/devel/avr-gdb/Makefile,v 1.2 2003/03/07 06:00:08 ade Exp DISTNAME= gdb-5.3 PKGNAME= avr-gdb-5.3 +PKGREVISION= 1 CATEGORIES= cross MASTER_SITES= ${MASTER_SITE_SOURCEWARE:=gdb/releases/} diff --git a/cross/avr-gdb/distinfo b/cross/avr-gdb/distinfo index 7fe7fef958f..19246922be6 100644 --- a/cross/avr-gdb/distinfo +++ b/cross/avr-gdb/distinfo @@ -1,3 +1,4 @@ -$NetBSD: distinfo,v 1.3 2003/07/24 08:39:58 wennmach Exp $ +$NetBSD: distinfo,v 1.4 2003/10/21 14:19:37 wennmach Exp $ SHA1 (gdb-5.3.tar.gz) = 24a6c9da6e89b1b82b7508f27f94098d989ff662 +SHA1 (patch-ab) = b74ff228047ccb45267e1302e4bef20716b255f4 diff --git a/cross/avr-gdb/patches/patch-ab b/cross/avr-gdb/patches/patch-ab new file mode 100644 index 00000000000..1cdd5e88314 --- /dev/null +++ b/cross/avr-gdb/patches/patch-ab @@ -0,0 +1,16 @@ +$NetBSD: patch-ab,v 1.1 2003/10/21 14:19:37 wennmach Exp $ + +*** gdb/avr-tdep.c.org Sun Oct 12 02:35:53 2003 +--- gdb/avr-tdep.c Sun Oct 12 02:58:30 2003 +*************** +*** 480,485 **** +--- 480,488 ---- + prologue_end = fi->pc; + else if (sal.end < prologue_end) /* next line begins after fn end */ + prologue_end = sal.end; /* (probably means no prologue) */ ++ ++ /* Check that we don't use a prologue larger then AVR_MAX_PROLOGUE_SIZE */ ++ prologue_end = min (prologue_end, prologue_start + AVR_MAX_PROLOGUE_SIZE); + } + else + /* We're in the boondocks: allow for */ -- cgit v1.2.3