[sane-devel] Mustek BP 1200 CU PLUS / Bug

Lorenzo Delana Lorenzo.Delana at tiscali.it
Tue Jan 17 23:08:18 UTC 2006


I have a Mustek BP 1200 CU PLUS scanner A4, that /proc/bus/usb/devices 
describe as:

T:  Bus=01 Lev=02 Prnt=03 Port=03 Cnt=01 Dev#=  5 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=055f ProdID=021c Rev= 1.00
S:  Product=USB Scanner
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms

1) I installed cvs version of sane-backend and when I use scanimage the 
problem go in Segmentation Fault;
to solve this I have to add a NULL POINTER check on the line 461 of the code 
so that:
-------------
	case USB_CLASS_PER_INTERFACE:
		  if (dev->config[0].interface[interface].altsetting)
		  switch (dev->config[0].interface[interface].altsetting[0].
			  bInterfaceClass)
		    {
----------------
This because altsetting something got me a NULL, then altsetting[0] is 
dereferencing a null pointer.

2) at line 479 I have todo:
--------------------------
 if (!found)
		DBG (5,
		     "sanei_usb_init: device 0x%04x/0x%04x, interface %d doesn't look like a 
"
		     "scanner (%d/%d)\n", dev->descriptor.idVendor,
		     dev->descriptor.idProduct, interface,
		     dev->descriptor.bDeviceClass,
		     0);
---------------
to quickly drop the altsetting[0] possibility of null pointer.

3) as for 1) in tools/sane-find-scanner.c at line 627

4) at backend/gt68xx_high.c
I have commented out the check for the status, because in this point the 
program blocks forever ( for my scanner ). changing status = SANE_STATUS_GOOD
for quickly replacement.




NOTE: I not reported a patch with the point 1..4, but the steps to make a 
workaround for those that wants to use sane-backend for mustek bp 1200 cu 
plus if they encountry my same problem.
In case case the possibility to have in points from 1 to 3 the 
dev->config[0].interface[interface].altsetting to NULL makes clear the 
absence of the control for pointer nullity.

kernel : 2.6.14.5 SMP x86_64
libusb ( is used ?) : v. 0.1.10a


lorenzo



More information about the sane-devel mailing list