Author: branden Date: 2004-02-09 01:15:08 -0500 (Mon, 09 Feb 2004) New Revision: 1014
Modified: branches/4.3.0/sid/debian/TODO branches/4.3.0/sid/debian/patches/200_alpha_xpm_get_long64.diff Log: Restore annotations to patch (lost from trunk) that make the case for its inclusion. Modified: branches/4.3.0/sid/debian/TODO =================================================================== --- branches/4.3.0/sid/debian/TODO 2004-02-09 06:11:52 UTC (rev 1013) +++ branches/4.3.0/sid/debian/TODO 2004-02-09 06:15:08 UTC (rev 1014) @@ -7,7 +7,6 @@ http://lists.debian.org/debian-x/2004/debian-x-200401/msg00475.html * PATCH APPLIED, FIX NEEDS TESTING * Investigate/forward-port the following patches from trunk: - + 203_Xpm_wordsize.diff + 351_newport_range.diff + 906_debian_xfs (see patch forward-port status chart below for more details) @@ -195,7 +194,7 @@ 200_alpha_GLX_align_fix.diff irrelevant according to Mike Harris (according to Daniel Stone) 201_alpha_truetype_gcc_bugfix.diff merged 201_alpha_freetype_gcc_2.95_bugfix 202_saverproto_datatypes.diff upstream comments were stripped out -203_Xpm_wordsize.diff INCOMPLETE 200_alpha_xpm_get_long64; restore patch annotation +203_Xpm_wordsize.diff merged 200_alpha_xpm_get_long64 311_arm_compiler_h.diff merged part of 302_arm_compiler_h 312_riscpc_xkb_keycodes.diff unchanged 300_riscpc_xkb_keycodes 314_not_all_arm_boxes_run_netbsd.diff unchanged 301_not_all_arm_boxes_run_netbsd Modified: branches/4.3.0/sid/debian/patches/200_alpha_xpm_get_long64.diff =================================================================== --- branches/4.3.0/sid/debian/patches/200_alpha_xpm_get_long64.diff 2004-02-09 06:11:52 UTC (rev 1013) +++ branches/4.3.0/sid/debian/patches/200_alpha_xpm_get_long64.diff 2004-02-09 06:15:08 UTC (rev 1014) @@ -1,8 +1,31 @@ $Id$ -This patch is needed to pull in the definition of LONG64 on Alpha. Thanks to -Kalle Olavi Niemitalo for this one. +This patch by Kalle Olavi Niemetalo. + Nighthawk 1.0-14 dies with SIGSEGV on Alpha before it displays + anything. With GDB and mcheck_pedantic(), I traced the problem + to heap corruption in the Xpm library. xpmParseDataAndCreate (in + xc/extras/Xpm/lib/create.c) sets ximage->f.put_pixel=PutPixel32, + but the PutPixel32 function assumes that unsigned long is 32-bit, + although it's actually 64-bit on the Alpha. XPutPixel will then + write past the end of the pixel and often also past the end of a + malloced block. + + The Xpm library already tries to support 64-bit processors: if + the WORD64 or LONG64 macro is defined, it disables PutPixel32 and + always uses the more portable functions PitPixel32MSB or + PutPixel32LSB instead. However, it seems the library was + compiled without these macros. + + I guess that WORD64 means int is 64-bit and LONG64 means long is + 64-bit; then LONG64 would be appropriate for Debian on the Alpha. + + What would be a good place to define the macro? <X11/Xmd.h> + already conditionally defines it; should the Xpm sources then + include this header? + +Not submitted upstream yet. + --- xc/extras/Xpm/lib/XpmI.h.orig Wed Jan 15 07:47:42 2003 +++ xc/extras/Xpm/lib/XpmI.h Wed Jan 15 07:48:00 2003 @@ -58,6 +58,7 @@