Bug 1585759

Summary: Previously working Lexmark filter segfaults
Product: [Fedora] Fedora Reporter: Keith Dixon <kldixon>
Component: cupsAssignee: Zdenek Dohnal <zdohnal>
Status: CLOSED CANTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 28CC: jpopelka, twaugh, zdohnal
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-06-05 06:32:16 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
additional information as referred to in the description none

Description Keith Dixon 2018-06-04 16:11:01 UTC
Created attachment 1447544 [details]
additional information as referred to in the description

Description of problem:

I have a pair of rather venerable rpms containing the 32 bit code for an old Lexmark Z25 printer which has worked on many successive Fedora releases, up to now, on a x86_64 machine. Specifically, it worked on Fedora 27. The printer is connected directly via USB. The contents of these two rpms are in the attachment.

On Fedora 28, however, the rasteriser filter, which is a i686 binary blob, segfaults:
 PID 2610 (/usr/lib/cups/filter/rastertoz35) crashed on signal 11.

So I take a look at it:
$ readelf -a /usr/lib/cups/filter/rastertoz35
...
 0x00000001 (NEEDED)                     Shared library: [liblexz35printjob.so.0]
 0x00000001 (NEEDED)                     Shared library: [liblexz35core.so.0]
 0x00000001 (NEEDED)                     Shared library: [libcups.so.2]
 0x00000001 (NEEDED)                     Shared library: [libcupsimage.so.2]
 0x00000001 (NEEDED)                     Shared library: [libstdc++.so.5]
 0x00000001 (NEEDED)                     Shared library: [libm.so.6]
 0x00000001 (NEEDED)                     Shared library: [libgcc_s.so.1]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
...

I tried downgrading these libraries to those on Fedora 27 but to no avail. The details are in the attachment.

I also took a look at the core dumps, but I have no source code and I do not know what to look for. Again, the details are in the attachment.

I realise this is not Fedora code and cups may not be the component where a change has occurred but it would seem that an abi has changed somewhere and cups  seemed to be as good a place to start as any.

Is there any hope for my printer?

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:
I also have to allow execmem for this code to work
# ausearch -c 'z35' --raw | audit2allow -M z35pol
# semodule -i z35pol.pp

Comment 1 Zdenek Dohnal 2018-06-05 06:32:16 UTC
Hi Keith,

IMHO a differences in ABI can be expected between releases (the problem would be if ABI difference was introduced between updates in stable release and dependent packages weren't rebuilt), that's why several mass rebuilds are done during development cycle.
The problem is that rpms are not in Fedora, so the package doesn't get rebuilt automatically. So the solution is to rebuilt these rpms with the libraries from F28. The issue should be reported to someone who released such rpms. If there isn't such person anymore, then I'm deeply sorry, but I cannot do anything about it.
Maybe you can try some foomatic-db or gutenprint ppds for Lexmark Z series and see if any of them works for you.