netpbm-progs-10.25-2.EL4.3 1. run "pbmtext hello" on an x86-64 2. See the crash Backtrace: #0 pbm_writepbmrow (fileP=0x2a95b488c0, bitrow=0x504440 "", cols=51, forceplain=Variable "forceplain" is not available. ) at libpbm3.c:85 #1 0x0000002a957fd48a in pbm_writepbm (fileP=0x2a95b488c0, bits=0x504348, cols=51, rows=29, forceplain=0) at libpbm3.c:259 #2 0x0000000000401968 in main (argc=2, argv=Variable "argv" is not available. ) at pbmtext.c:719 Crashes in: packedBits[col/8] = bitreverse [ ~ (unsigned char) __builtin_ia32_pmovmskb ( __builtin_ia32_pcmpeqb ( *(v8qi*) (&bitrow[col]), *(v8qi*) zero64) ) ]; A patch that fixes the crash in itself, but creates horribly broken images: --- netpbm-10.25/lib/libpbm3.c.old 2006-04-21 09:08:42.000000000 +0100 +++ netpbm-10.25/lib/libpbm3.c 2006-05-03 15:14:32.000000000 +0100 @@ -84,7 +84,7 @@ packBitsWithMmxSse(FILE * const for (col =0; col < cols-7; col += 8) packedBits[col/8] = bitreverse [ ~ (unsigned char) __builtin_ia32_pmovmskb ( - __builtin_ia32_pcmpeqb ( *(v8qi*) (&bitrow[col]), *(v8qi*) zero64) + __builtin_ia32_pcmpeqb ( *(v8qi*) (&bitrow[col]), (v8qi) zero64) ) ]; *nextColP = col; Easiest might be to disable SSE/MMX functions on x86-64 systems.
Created attachment 128773 [details] Patch to fix the pbmtext breakage backported from upstream. The code in 10.25 is broken despite the missing '&' in the original netpbm. The attached patch fixes it, so it also produces sane images. (backported from netpbm-10.33)
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2006-0651.html