Bug 190539
| Summary: | pbmtext crashes on x86-64 | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 4 | Reporter: | Bastien Nocera <bnocera> | ||||
| Component: | netpbm | Assignee: | Jindrich Novy <jnovy> | ||||
| Status: | CLOSED ERRATA | QA Contact: | Ben Levenson <benl> | ||||
| Severity: | medium | Docs Contact: | |||||
| Priority: | medium | ||||||
| Version: | 4.0 | CC: | pknirsch, psplicha, tao | ||||
| Target Milestone: | --- | ||||||
| Target Release: | --- | ||||||
| Hardware: | All | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | RHBA-2006-0651 | Doc Type: | Bug Fix | ||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2006-10-11 19:14:32 UTC | Type: | --- | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Embargoed: | |||||||
| Bug Depends On: | |||||||
| Bug Blocks: | 176344, 201655 | ||||||
| Attachments: |
|
||||||
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 |
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.