usb to parallel adapter causes segfault when adding printer

Bug #485059 reported by Ole Streicher
26
This bug affects 5 people
Affects Status Importance Assigned to Milestone
cups (Ubuntu)
New
Undecided
Unassigned

Bug Description

Binary package hint: cups

When I try to add a printer via usb-to-parallel, the printer is not recognized and the backend program will die with a segfault.

Dmesg reports:

[ 4875.810031] usb 3-1: new full speed USB device using ohci_hcd and address 5
[ 4876.033583] usb 3-1: configuration #1 chosen from 1 choice
[ 4876.107592] usblp0: USB Bidirectional printer dev 5 if 0 alt 0 proto 2 vid 0x1A86 pid 0x7584
[ 4876.107642] usbcore: registered new interface driver usblp
[ 4886.380286] usb 3-1: usbfs: interface 0 claimed by usblp while 'usb' sets config #1
[ 4886.416955] usb[8155]: segfault at 7fff03707000 ip 00007ff08cbc2b14 sp 00007fff03703248 error 4 in libc-2.10.1.so[7ff08cb40000+166000]

The last line can be reproduced by calling /usr/lib/cups/backend/usb by hand:

DEBUG: list_devices_libusb
DEBUG: usb_find_busses=4
DEBUG: usb_find_devices=6
Segmentation fault

The adapter is known to work under Ubuntu (worked at 9.04).
Affects kubuntu 9.10/amd64
cups version is 1.4.1-5ubuntu2.1

Revision history for this message
Ole Streicher (olebole) wrote :

I disabled the usblp kernel module.
When running /usr/lib/cups/backend/usb under strace, I get:

[...]
open("/dev/bus/usb/003/004", O_RDWR) = 3
ioctl(3, USBDEVFS_SETCONFIGURATION, 0x7fff4c1b19d4) = 0
ioctl(3, USBDEVFS_CLAIMINTERFACE, 0x7fff4c1b19cc) = 0
ioctl(3, USBDEVFS_SETINTERFACE, 0x7fff4c1b19c0) = 0
ioctl(3, USBDEVFS_CONTROL, 0x7fff4c1b1980) = 2
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++

/dev/bus/usb/003/004 is the device of the interface.

gdb says:
[...]
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7479b54 in ?? () from /lib/libc.so.6
(gdb) where
#0 0x00007ffff7479b54 in ?? () from /lib/libc.so.6
#1 0x00007ffff7477ede in memmove () from /lib/libc.so.6
#2 0x00007ffff7ff8d69 in ?? () from /usr/lib/cups/backend/usb
#3 0x00007ffff7ff9c33 in ?? () from /usr/lib/cups/backend/usb
#4 0x0d7800007ffff7ff in ?? ()
#5 0xab3500007ffff776 in ?? ()
#6 0xdd4000007ffff7ff in ?? ()
#7 0x000000007fffffff in ?? ()
#8 0x0000ffffffffb6a0 in ?? ()
#9 0x5e88ffffefbc86d6 in ?? ()
#10 0xf9d000007ffff73f in ?? ()
#11 0x2c5200007ffff7fc in ?? ()
#12 0x000100007ffff7de in ?? ()
#13 0xf4d000007fff0000 in ?? ()
#14 0x000100007ffff7fc in ?? ()
#15 0x0000000000000000 in ?? ()

Revision history for this message
Aymeric Mansoux (aymeric) wrote :

Same here on 9.10, I tried all kind of different things including pinning CUPS and related dependencies from lucid, it always lead to the same segmentation fault.

The only workaround that I found, to be able to use the printer again, was to blindly add a printer from the CUPS admin page and point it to "parallel:/dev/usb/lp0" (and then use the right PPD file, etc) as explained here: https://bugs.launchpad.net/ubuntu/+source/cups/+bug/436495

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.