Package: gputils
Version: 0.13.0-1
Severity: important
Tags: patch

'gplink' fails to properly check certain PC-relative instructions are properly
in range.  It checks address against a mask which fails to account for the
sign bit.  The result is code which can be very difficult to debug on a PIC.

I believe the attached patch corrects the problem.

-- System Information:
Debian Release: 3.1
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: powerpc (ppc)
Kernel: Linux 2.6.11-rc4
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages gputils depends on:
ii  libc6                       2.3.2.ds1-20 GNU C Library: Shared libraries an

-- no debconf information

--- ./libgputils/gpcofflink.c.orig      2005-01-02 16:57:03.000000000 -0800
+++ ./libgputils/gpcofflink.c   2005-03-10 19:30:52.000000000 -0800
@@ -1435,7 +1435,7 @@
     break;
   case RELOCT_BRA:
     offset = (value - ((org + 1) << 1)) >> 1;
-    check_relative(section, org, offset, 0x7ff);
+    check_relative(section, org, offset, 0x3ff);
     data = offset & 0x7ff;
     break;
   case RELOCT_CONDBRA:


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to