[sane-devel] Problem with Olivetti Job_Jet M400

2004-10-16 Thread Livhu Tshisikule
Henning,

Thanks a lot, here are the results of sane-find-scanner -v -v

device descriptor of 0x0b3c/0xa880 at 003:003 (Olivetti Job_Jet M400)
bLength   18
bDescriptorType   1
bcdUSB2.00
bDeviceClass  0
bDeviceSubClass   0
bDeviceProtocol   0
bMaxPacketSize0   8
idVendor  0x0B3C
idProduct 0xA880
bcdDevice 1.00
iManufacturer 1 (Olivetti)
iProduct  2 (Job_Jet M400)
iSerialNumber 3 (MY43FT62DF82)
bNumConfigurations1
 configuration 0
 bLength  9
 bDescriptorType  2
 wTotalLength 99
 bNumInterfaces   3
 bConfigurationValue  1
 iConfiguration   0 ()
 bmAttributes 192 (Self-powered)
 MaxPower 2 mA
  interface 0
   altsetting 0
   bLength9
   bDescriptorType4
   bInterfaceNumber   0
   bAlternateSetting  0
   bNumEndpoints  3
   bInterfaceClass255
   bInterfaceSubClass 204
   bInterfaceProtocol 0
   iInterface 0 ()
endpoint 0
bLength   7
bDescriptorType   5
bEndpointAddress  0x01 (out 0x01)
bmAttributes  2 (bulk)
wMaxPacketSize64
bInterval 0 ms
bRefresh  0
bSynchAddress 0
endpoint 1
bLength   7
bDescriptorType   5
bEndpointAddress  0x81 (in 0x01)
bmAttributes  2 (bulk)
wMaxPacketSize64
bInterval 0 ms
bRefresh  0
bSynchAddress 0
endpoint 2
bLength   7
bDescriptorType   5
bEndpointAddress  0x82 (in 0x02)
bmAttributes  3 (interrupt)
wMaxPacketSize8
bInterval 10 ms
bRefresh  0
bSynchAddress 0
  interface 1
   altsetting 0
   bLength9
   bDescriptorType4
   bInterfaceNumber   1
   bAlternateSetting  0
   bNumEndpoints  3
   bInterfaceClass7
   bInterfaceSubClass 1
   bInterfaceProtocol 2
   iInterface 0 ()
endpoint 0
bLength   7
bDescriptorType   5
bEndpointAddress  0x03 (out 0x03)
bmAttributes  2 (bulk)
wMaxPacketSize64
bInterval 0 ms
bRefresh  0
bSynchAddress 0
endpoint 1
bLength   7
bDescriptorType   5
bEndpointAddress  0x83 (in 0x03)
bmAttributes  2 (bulk)
wMaxPacketSize64
bInterval 0 ms
bRefresh  0
bSynchAddress 0
endpoint 2
bLength   7
bDescriptorType   5
bEndpointAddress  0x84 (in 0x04)
bmAttributes  3 (interrupt)
wMaxPacketSize8
bInterval 10 ms
bRefresh  0
bSynchAddress 0
  interface 2
   altsetting 0
   bLength9
   bDescriptorType4
   bInterfaceNumber   2
   bAlternateSetting  0
   bNumEndpoints  3
   bInterfaceClass255
   bInterfaceSubClass 255
   bInterfaceProtocol 255
   iInterface 0 ()
endpoint 0
bLength   7
bDescriptorType   5
bEndpointAddress  0x05 (out 0x05)
bmAttributes  2 (bulk)
wMaxPacketSize64
bInterval 0 ms
bRefresh  0
bSynchAddress 0
endpoint 1
bLength   7
bDescriptorType   5
bEndpointAddress  0x85 (in 0x05)
bmAttributes  2 (bulk)
wMaxPacketSize64
bInterval 0 ms
bRefresh  0
bSynchAddress 0
endpoint 2
bLength   7
bDescriptorType   5
bEndpointAddress  0x86 (in 0x06)
bmAttributes  3 (interrupt)
bRefresh  0
trying to find out which USB chip is used
checking for GT-6801 ...
this is not a GT-6801 (bDeviceClass = 0)
checking for GT-6816 ...
this is not a GT-6816 (bcdUSB = 0x200)
checking for MA-1017 ...
this is not a MA-1017 (bDeviceClass = 0, bInterfaceClass = 255)
checking for MA-1015 ...
this is not a MA-1015 (bDeviceClass = 0)
checking for MA-1509 ...
this is not a MA-1509 (bDeviceClass = 0)
checking for LM983[1,2,3] ...
this is not a LM983x (bcdUSB = 0x200)
checking for GL646 ...
this is not a GL646 (bDeviceClass = 0, bInterfaceClass = 255)
checking for GL660+GL646 ...
this is not a GL660+GL646 (bDeviceClass = 0, bInterfaceClass = 255)
Couldn't determine the type of the USB chip

found USB scanner (vendor=0x0b3c [Olivetti], product=0xa880 [Job_Jet M400]) at 
libusb:003:003

Regards
Livhu




[sane-devel] Timetable for the release of sane-backends-1.0.15

2004-10-16 Thread Oliver Rauch
Am Fre, 2004-10-15 um 16.44 schrieb Oliver Rauch:
 Hello.
 
 I am not able to get access to the CVS server (permission denied).
 Please could someone who has acces to the server take a look at that?!
 
 I suggest to delay the feature freeze for some days when this
 is not solved soon.

Today everything works right again, no need for a delay.

Oliver




[sane-devel] Timetable for the release of sane-backends-1.0.15

2004-10-16 Thread Julien BLACHE
Oliver Rauch oliver.ra...@rauch-domain.de wrote:

 I am not able to get access to the CVS server (permission denied).
 Please could someone who has acces to the server take a look at that?!

It should be working again, LDAP crashed again.

JB.

-- 
Julien BLACHE   http://www.jblache.org 
j...@jblache.org  GPG KeyID 0xF5D65169



[sane-devel] Snapscan: Epson 2480 hangs on amd64

2004-10-16 Thread Julien BLACHE
Hi,

My Epson 2480 hangs when doing a preview on an amd64 box, however it
works fine on both an i386 and a PowerPC boxes.

Here's the end of the log :

[snapscan] sane_snapscan_start: after measuring speed:
3816 bytes per scan line
0.00 milliseconds per scan line.
==inf bytes per millisecond
[snapscan] calibrate: reading calibration data (1 lines)
[snapscan] read_calibration_data
[snapscan] snapscan_cmd
[snapscan] snapscani_usb_cmd(0,0x647088,10,0x75fdb0,0xbfffe438 (61200))
[snapscan] atomic_usb_cmd(0,0x647088,10,0x75fdb0,0xbfffe438 (61200))
[snapscan] usb_cmd(0,0x647088,10,0x75fdb0,0xbfffe438 (61200))
[snapscan] usb_cmd: cmdlen=10, datalen=0
[snapscan] usb_write: writing:  0x28 0x00 0x82 0x00 0x00 0x01 0x00 0xef 0x10 
0x00
[snapscan] Written 10 bytes
[snapscan] usb_read: reading:  0xf9 0x00 0x00 0x00 0x00 0x00 0x00 0x00
[snapscan] Read 8 bytes
[snapscan] usb_read Only 0 bytes read
[snapscan] usb_read: reading:  0x5e 0x5d 0x63 0x60 0x60 0x5d 0x62 0x5e 0x60 
0x64 ...
[snapscan] Read 0 bytes
[snapscan] read_calibration_data: snapscan_cmd command failed: Error during 
device I/O
[snapscan] calibrate: read_calibration_data command failed: Error during device 
I/O
[snapscan] sane_snapscan_start: calibration failed.
[snapscan] release_unit
[snapscan] snapscan_cmd
[snapscan] snapscani_usb_cmd(0,0xbfffe480,6,0x0,0x0 (0))
[snapscan] atomic_usb_cmd(0,0xbfffe480,6,0x0,0x0 (0))
[snapscan] usb_cmd(0,0xbfffe480,6,0x0,0x0 (0))
[snapscan] usb_cmd: cmdlen=6, datalen=0
[snapscan] usb_write: writing:  0x17 0x00 0x00 0x00 0x00 0x00
[snapscan] usb_write Only 0 bytes written
[snapscan] Written 0 bytes
[snapscan] release_unit: scsi command error: Error during device I/O
[snapscan] sane_snapscan_cancel
[snapscan] release_unit
[snapscan] snapscan_cmd
[snapscan] snapscani_usb_cmd(0,0xbfffe3b0,6,0x0,0x0 (0))
[snapscan] atomic_usb_cmd(0,0xbfffe3b0,6,0x0,0x0 (0))
[snapscan] usb_cmd(0,0xbfffe3b0,6,0x0,0x0 (0))
[snapscan] usb_cmd: cmdlen=6, datalen=0
[snapscan] usb_write: writing:  0x17 0x00 0x00 0x00 0x00 0x00
[snapscan] usb_write Only 0 bytes written
[snapscan] Written 0 bytes
[snapscan] release_unit: scsi command error: Error during device I/O
[snapscan] close_scanner
[snapscan] snapscani_usb_close(0)
[snapscan] 1st read 977 write 411
[snapscan] usb_cmd(0,0xbfffe3b0,6,0x0,0x0 (0))
[snapscan] usb_cmd: cmdlen=6, datalen=0
[snapscan] usb_write: writing:  0x00 0x00 0x00 0x00 0x00 0x00
[snapscan] usb_write Only 0 bytes written
[snapscan] Written 0 bytes
[snapscan] 2nd read 977 write 411

dmesg indicates the usb operations time out (ret -110).

JB.

-- 
Julien BLACHE   http://www.jblache.org 
j...@jblache.org  GPG KeyID 0xF5D65169



[sane-devel] Timetable for the release of sane-backends-1.0.15

2004-10-16 Thread Henning Meier-Geinitz
Hi,

On Fri, Oct 15, 2004 at 04:44:42PM +0200, Oliver Rauch wrote:
 I am not able to get access to the CVS server (permission denied).
 Please could someone who has acces to the server take a look at that?!

The reason was a 100% full / file system which stopped login and other
services like mail. As far as I can see it's fixed now.

As the mailinglists are hosted on the same server as CVS
(alioth.debian.org), they usually don't work when CVS is broken by
such failures. The IRC channel #sane is not affected as it's
independent from alioth. So better ask there when CVS or anything else
is broken.

Bye,
  Henning



[sane-devel] Problem with Olivetti Job_Jet M400

2004-10-16 Thread Henning Meier-Geinitz
Hi,

On Sat, Oct 16, 2004 at 08:04:34AM +0200, Livhu Tshisikule wrote:
 Henning,
 
 Thanks a lot, here are the results of sane-find-scanner -v -v

Thanks. I'll add that scanner as unsupported to our lists.

Bye,
  Henning



[sane-devel] possible bin_w_string security issue (not)

2004-10-16 Thread Henning Meier-Geinitz
Hi,

On Fri, Oct 15, 2004 at 03:47:06PM +0200, Johannes Berg wrote:
 I was going to write a mail without the (not) but then discovered that
 this issue is actually a non-issue, but this is totally non-obvious.
 
 Would you know off-hand why?

SIGPIPE (ok, I read your mail before answering) :-)

 bin_w_string contains the following code:
 
   if (w-direction == WIRE_DECODE)
 {
   if (len == 0)
 *s = 0;
   else if (w-status == 0)
 *(*s + len - 1) = '\0';
 }
 
 If I interpret the code correctly, this could be used to bring the
 server (running the binary protocol) into an invalid state:

Nearly any protocol violation from server or client can have strange
results. That's one of the problems with the SANE net protocol.

Also there are still many tests missing for a bad wire status (see bug
#300105).

 * now, the server has a password string that is not zero terminated,
and strcpy()s that string accessing memory beyond the allocated size.

There may be other locations but at least here it tests for the wire
status:

(saned.c l. 356)

  sanei_w_authorization_req (wire, req);
  if (wire.status)
{
  DBG(DBG_ERR, auth_callback: bad status %d\n, wire.status);
  return;
}

  if (req.username)
strcpy (username, req.username);  
[...]

All the wire code expects the caller to test the wire status before he
does anything else. I think there should be tests in all functions of
sanei_net.c also to avoid calling sanei_wire again when the wire is
already bad.

 [Actually, I discovered this while I was documenting the wire protocol.
 I think it is overly complex and the code badly structured, the wire's
 direction thing is really strange!]

I'm still not sure if I have understood all the details of the wire
code. But I guess the idea was to have only one function for each kind
of data. So you don't need one for the server and one for the client
and one for ascii and one for bin and one for sending and one for
receiving...

 Ok, so here's the solution:
 
 The server does
   signal (SIGPIPE, quit);
 
 (which I think is actually another bug, why should sane_close,
 sane_exit, sanei_w_exit and lots of other functions be async signal
 safe?)

They aren't. Only sane_cancel() must be async signal safe.

Yes, I guess that's a bug.

 Still, this is that non-obvious that someone writing a server (or
 client, which could then be attacked by a malevolent server) with the
 sanei library functions could easily oversee this detail, ignore SIGPIPE
 or use sockets that don't raise it.

Nobody should ever use sanei_wire/sanei_net/sanei_codec_* without
really knowing what he does :-)

 Therefore I'm still sending this mail in hope that someone fixes the
 sanei_w_array function to check for status != 0 and clean up after
 itself.

But what should sanei_w_array do? It already exits when the wire is in
bad state. I think that's really up to the caller.

Bye,
  Henning



[sane-devel] Snapscan: Epson 2480 hangs on amd64

2004-10-16 Thread Oliver Schwartz
Hi,

 [snapscan] read_calibration_data: snapscan_cmd command failed:
 Error during device I/O [snapscan] calibrate: read_calibration_data
 command failed: Error during device I/O [snapscan]
 sane_snapscan_start: calibration failed.

the error occurs during quality calibration. It's a known issue that 
quality calibration as implemented in the snapscan backend doesn't 
work for epson scanners. For that reason the option is disabled for 
epson models (see snapscan-options.c, line 522ff). In this case the 
calibrate function should never be called (see snapscan.c, line 
1600).

Either you're using a wrong version of the backend or there's some 
issue with option handling on amd64.

/Oliver



[sane-devel] possible bin_w_string security issue (not)

2004-10-16 Thread Johannes Berg
--=-yhkGcHckmX4ZO5PEvTHQ
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

Hi,

 SIGPIPE (ok, I read your mail before answering) :-)

:-)

 Nearly any protocol violation from server or client can have strange
 results. That's one of the problems with the SANE net protocol.
=20
 Also there are still many tests missing for a bad wire status (see bug
 #300105).

Will do.

 There may be other locations but at least here it tests for the wire
 status:

Hm. I guess you're right. Seems I missed it, or maybe I was writing this
when I looked at a different location? Sorry.

 I'm still not sure if I have understood all the details of the wire
 code. But I guess the idea was to have only one function for each kind
 of data. So you don't need one for the server and one for the client
 and one for ascii and one for bin and one for sending and one for
 receiving...

Yeah, and then it is also overloaded for freeing allocated data.

 They aren't. Only sane_cancel() must be async signal safe.
=20
 Yes, I guess that's a bug.

Ok.

 Nobody should ever use sanei_wire/sanei_net/sanei_codec_* without
 really knowing what he does :-)

:-)

 But what should sanei_w_array do? It already exits when the wire is in
 bad state. I think that's really up to the caller.

Yes, but before exiting it should free the result buffer and NULL the
pointer. When the wire is in an invalid state during reading, it cannot
be guaranteed that the buffer is in a valid state, so should be
discarded.

johannes

--=-yhkGcHckmX4ZO5PEvTHQ
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-BEGIN PGP SIGNATURE-
Comment: Johannes Berg (SIP Solutions)

iQIVAwUAQXEVXaVg1VMiehFYAQLPOw/9E6+OseXpkvwWNMTenxSGxMF28XX/Rl71
s7sYiR4Fg9hdmPQDy0RtTkQrKspY6izzgn1aGlsH7H2eLw2pIF7yqW36vX2gQXWo
kwju+ZF+dIDLWjQ8ICiyuJFgYUNWxjZjDTfLhwe16ByGnVT+nWIx9ZbPYaB1KR0N
PmqH3M9G+s7oaZFh5zKtPiJA6kSBbsgpnhSDZpqzop+Rfe8vrFIPN7UTQS2PqZUx
20kMuH4CQu0ggpJ9yekIfzRdbBAZcHSCxKo7vTuupfratbbib9D2firVgW77aaNO
Lo3gnue+/TgxLJWeaBxrn/unL/q5U/YnNGhUgAsDBlGymjpZJV+ApOYHoVarv5XS
CbyYKKrszzhO8otxfkfA07v7QxqqpDw1CRE2tfxHqXyk2hmyVsy38AHrZOyevMGS
D2du8D63miUyVaU3dlGrjmcSxE7pohki9BpMjZ54hIEiF0zw2H9pC1/363KWNzl+
2rVZcrCmBQMrwoewepWGpvQBJiFZ9sxUkAmaQu/Jv3HEOQnsX8ZmQwKZpKy1qPHm
ARqx2Yex/OJ8R8ViKQfPjpRVyBvYfchle+XNRpJh+lbn2VGwh4KKWNGaaoFqdOJd
Ybwv5LTz7XtYFmR3IOssFp8BjrTULE5oezwrwCFLqyIJAGC64dGnkdTli6xlEp2E
h41UsBd5daQ=
=cJpn
-END PGP SIGNATURE-

--=-yhkGcHckmX4ZO5PEvTHQ--





[sane-devel] Snapscan: Epson 2480 hangs on amd64

2004-10-16 Thread Julien BLACHE
Oliver Schwartz oliver.schwa...@gmx.de wrote:

Hi Oliver,

 [snapscan] read_calibration_data: snapscan_cmd command failed:
 Error during device I/O [snapscan] calibrate: read_calibration_data
 command failed: Error during device I/O [snapscan]
 sane_snapscan_start: calibration failed.

 the error occurs during quality calibration. It's a known issue that 
 quality calibration as implemented in the snapscan backend doesn't 
 work for epson scanners. For that reason the option is disabled for 
 epson models (see snapscan-options.c, line 522ff). In this case the 
 calibrate function should never be called (see snapscan.c, line 
 1600).

This is fresh checkout, and the code seems OK. There is something
fishy going on... now it doesn't even find the scanner anymore. I'll
dig into it.

 Either you're using a wrong version of the backend or there's some 
 issue with option handling on amd64.

Looks like it :/

JB.

-- 
Julien BLACHE   http://www.jblache.org 
j...@jblache.org  GPG KeyID 0xF5D65169



[sane-devel] weird message configuring sane-frontends

2004-10-16 Thread Henning Meier-Geinitz
Hi,

On Fri, Oct 15, 2004 at 04:03:24PM +0200, Johannes Berg wrote:
 [configure fails because it can't find sane-config]
 You may need to remove /dev/null before you run configure again.
 
 Clearly, that is not something you want to do.

That's the penalty for users who don't read the docs and install
sane-frontends before sane-backends :-)

Fixed in CVS now.

The idea was to print the name of the cache filr of autoconf (usually
./config.cache). Recent autoconf versions don't use it and set the
variable to /dev/null.

Bye,
  Henning



[sane-devel] saned/sanei net bug

2004-10-16 Thread Henning Meier-Geinitz
Hi,

On Fri, Oct 15, 2004 at 04:03:04PM +0200, Johannes Berg wrote:
 somehow saned/the sanei network layer seem to get buffering wrong.

I'm afraid that that's intentional. But that's only a guess.

 For example, I send the following:
 
 SANE_NET_INIT
 SANE_NET_GET_DEVICES
 SANE_NET_EXIT
 
 If I don't wait for the result from SANE_NET_GET_DEVICES before sending
 the control code for SANE_NET_EXIT, then the SANE_NET_EXIT code is
 discarded.

I think you must really read the result of any RPC before sending the
next one.

 I would assume that somewhere there's a buffering problem and the old
 buffer is simply dropped when the direction is changed or something.

That's done in sanei_w_set_direction().
Set SANE_DEBUG_SANEI_WIRE=255 and you'll even get a warning :-)

 The following works:
 (echo  -n -e \\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00 ;
 sleep .1 ; echo -n -e \\00\\00\\x00\\x01 ; sleep 1 ;
 echo -en \\x00\\x00\\x00\\x0A ) | nc localhost 6566 -q 1 | hd
 
 while this doesn't:
 (echo  -n -e \\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00 ;
 sleep .1 ; echo -n -e \\00\\00\\x00\\x01\\x00\\x00\\x00\\x0A
 )| nc localhost 6566 -q 1 | hd
 
 I think this is extremely counter-intuitive. TCP never guarantees
 message boundaries, so one wouldn't think that data is explicitly read
 by the application but then discarded.
 
I guess you are right but I don't really know how to fix that with the
current code. One option would be to set the wire to error state (and
exit?) when data is discarded.

Bye,
  Henning



[sane-devel] [BUG] saned: missing input sanitization

2004-10-16 Thread Henning Meier-Geinitz
Hi,

On Fri, Oct 15, 2004 at 03:47:40PM +0200, Johannes Berg wrote:
 SANE_NET_OPEN makes saned segfault if a NULL name is passed, because it
 tries to strdup() the name without checking for != NULL.

I've added a check to CVS. It returns an error to the client because I
think that's a protocol violation. Zero-length strings are allowed for
sane_open but not NULL-pointers.

Could you check if that works and doesn't create any new bugs?

Bye,
  Henning



[sane-devel] [BUG] saned: missing input sanitization

2004-10-16 Thread Johannes Berg
--=-RvFmJl5eUaAjiXBPw3Ib
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

On Sat, 2004-10-16 at 15:48 +0200, Henning Meier-Geinitz wrote:
 I've added a check to CVS. It returns an error to the client because I
 think that's a protocol violation. Zero-length strings are allowed for
 sane_open but not NULL-pointers.

I think the problem is that the network layer does not distinguish
between zero-length strings and NULL pointers -- as far as I can see it
interprets a zero-length string (which is only a byte-array after all)
as a NULL string.

johannes

--=-RvFmJl5eUaAjiXBPw3Ib
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-BEGIN PGP SIGNATURE-
Comment: Johannes Berg (SIP Solutions)

iQIVAwUAQXEpq6Vg1VMiehFYAQKfdw/8DmtQmW6bABrsnmshQFN+syVsTAZWFhRO
0veLBoM8uNxgFMLXUtiXhv0lWfbZdce6UXYREB3bPy2yrAIsm30rFipBGvckX9J9
RvmH21mrigWiYn5VoloGIqiCDum/BubxyeE/xSBkcVcDKh3wnOWtYzFDBEnyP79U
rUz0bMlchKHcKrPsZq78WeJ203hZaPBxPgmRKT/i/kjdOFMIiu/enMC8VEFrl3Oe
AhbXOhtj5GtkfPs1ueM5oms4f4wu4La+lF6+5lhHGFOY6Bwj+Xd0xwvxPge36NXD
NRn7XArGv9SLUPza1y9Nw6wlVMFpG4AdlUyTTH3zO28A8bOjksSC53p/ftl/x9z1
wE4j1yBvzUmlrCYmSYvPgzXG5Kwv6CndtE3+v6+f2dYrY80yMCLLWyMG1XLgKtvT
oDtuUFdpzOPSQSDWz7ICkCyl1Vv+5DiWlchXBqN5cHz/1mDMZOj9VAmtoo+b28kA
tIeEFq3q0ITTwJps6nrmUDshGDAiVWj86NH7y+Q6py0EmG8eHav1MvDdxiz5r7/x
Q160C87JrAfMgxl5o84zGF63XJHH4k6e0RLNEqDLCg6u0K+qZ9tkUgNQOLZ5Ym9Q
LcqYgokfISbLEfit7V4fp9lXz75ZU7HYsaDnsOKKH/EI0v3F1xzHQUG2LMNywlBj
8XQQi/XDORw=
=iuNs
-END PGP SIGNATURE-

--=-RvFmJl5eUaAjiXBPw3Ib--





[sane-devel] [BUG] saned: missing input sanitization

2004-10-16 Thread Henning Meier-Geinitz
Hi,

On Sat, Oct 16, 2004 at 04:01:20PM +0200, Johannes Berg wrote:
 I think the problem is that the network layer does not distinguish
 between zero-length strings and NULL pointers -- as far as I can see it
 interprets a zero-length string 

A zero length string is e.g. SANE_String hubba = ;

 (which is only a byte-array after all)

For sane_net a zero-lenth string is 0 0 0 1 0 (Array of length 1 which
only contains a 0 byte as end marker).

 as a NULL string.

I hope it doesn't. A NULL string is encoded as an array of length 0
(and has no data).

zero-length is ok in sane_open, NULL isn't.

Bye,
  Henning



[sane-devel] [BUG] saned: missing input sanitization

2004-10-16 Thread Johannes Berg
--=-5n0e72bCo6NIQyEFjdhX
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

On Sat, 2004-10-16 at 16:10 +0200, Henning Meier-Geinitz wrote:

 For sane_net a zero-lenth string is 0 0 0 1 0 (Array of length 1 which
 only contains a 0 byte as end marker).

Reading through the code again -- looks like you're right. Somehow I got
the impression that it was the same, but don't remember where I read
that now.

johannes

--=-5n0e72bCo6NIQyEFjdhX
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-BEGIN PGP SIGNATURE-
Comment: Johannes Berg (SIP Solutions)

iQIVAwUAQXEuxqVg1VMiehFYAQKFVw//Uyr9ZkUO2zjzW/eDiaqWKp6o14qOwMDF
3p7QClunjZDGLPz3Bzt7mDZtqaecyy0Dly1Be0nk5LDOphvnuRk+OucWmrCcDfQT
dTmqnfScp0G+bzKEawnrBNC4nPiimJnqEEpdLcPv/tx1wi2AZ8yQZBx7lW5anjc0
Ewl3Ssnx3dVxu+MsfqXVwN+I+cTFVai7uDANnkqNl9UGi9MxUb0w34ZsGSkqdtJf
8VyTOzvrpq3cfe1yD2NL5uHAsb4fJ6+3KcfOzo/vXxJgKHFwI4R6DodwyOTjZnCT
4+MTcQEJCEEsYXPGwYCBqv33NTN1/y7VGFfAoHQycQu9VAfjo0uec5Gffzrc3szd
2lnaTAt94hRLtd1QxdgjQMMj3QBIPHz6FRvet+IQb7t97A4I294/32oQV4S425R/
brkA4BOEEzyHihFard7V2o3404frglJZGWUOBKqYRYcypmzyIk73xLFnyvHQnaAm
qG9uUxzDvtamzYmcst0v25MsGDzqyGVOfryLaWV6uMMmms3MWU9y7Y20MQMvBrjT
Yl6w/t85C/nomxiVftTS+8H6hKbVExB57TMN9SnQUN4tjw1LD1TCwROkl6BExpHI
D3GDSfWojZ2emFoZsIbJ+PKoq79K/MWFyE5DDpk4Qv/sPd6h9oII3qgBTSWZHR5H
MIOXVanpyXU=
=Ilg2
-END PGP SIGNATURE-

--=-5n0e72bCo6NIQyEFjdhX--





[sane-devel] Problems with libusb (WAS:Upgrading sane-backend on Mandrake 10.0)

2004-10-16 Thread Lloyd Sumpter

Henning Meier-Geinitz wrote:
 Hi,
 
 On Fri, Nov 22, 2002 at 08:03:23AM -0800, Lloyd Sumpter wrote:
 
 Strange date.
 
Sorry, had just rebooted (from the problems between harddrake and 
sane-find-scanner) and hadn't run rdate yet.

snip
 
BTW: The reason I have to upgrade is that apparently the sane-backends 
included with Mandrake 10.0 do NOT support libusb (but since the kernel 
is 2.6.x, there's no scanner.o to use instead...)
 
 
 sane-backends supports libusb since quite some time. And it was needed
 before kernel 2.6 at least for some scanners. So I'd be surprised if
 the Mandrake version had no libusb support.
 
 You can check by running sane-find-scanner -v -v. It should print
 messages about using libusb.
 

Thanks for your help! But on Sept 29, you wrote:

  On Tue, Sep 28, 2004 at 01:22:01PM -0700, Lloyd Sumpter wrote:
 
   [sanei_debug] Setting debug level of sanei_usb to 255.
   [sanei_usb] sanei_usb_init: couldn't open /dev/usb/scanner0: No 
such   device
   [sanei_usb] sanei_usb_init: found 0 devices
 
 
  Oh. That means that SANE isn't built with libusb support. It only
  searches for /dev/usb/ but not for libusb devices.
 
  As your sane-find-scanner program finds libusb devices, maybe you have
  an old installation of the SANE backends without libusb support that's
  used by scanimage?

Note that sane-find-scanner DOES find the scanner (using libusb), but 
scanimage does not.

PLEASE, any help would be appreciated - I've been working on this for weeks!

Lloyd Sumpter




[sane-devel] Problems with libusb (WAS:Upgrading sane-backend on Mandrake 10.0)

2004-10-16 Thread Henning Meier-Geinitz
Hi,

On Sat, Oct 16, 2004 at 08:35:28AM -0700, Lloyd Sumpter wrote:
 You can check by running sane-find-scanner -v -v. It should print
 messages about using libusb.
 
 Thanks for your help! But on Sept 29, you wrote:

Oh, different thread, same problem? I usually don't look at the
author's name :-)

  Oh. That means that SANE isn't built with libusb support. It only
  searches for /dev/usb/ but not for libusb devices.
 
  As your sane-find-scanner program finds libusb devices, maybe you have
  an old installation of the SANE backends without libusb support that's
  used by scanimage?
 
 Note that sane-find-scanner DOES find the scanner (using libusb), but 
 scanimage does not.

Ok.

 PLEASE, any help would be appreciated - I've been working on this for weeks!

See above. Have you checked if you don't use two different
installations of SANE?

E.g. check sane-find-scanner:
ldd /usr/bin/sane-find-scanner
Check libsane:
ldd /usr/lib/libsane.so.1
And to be safe, check the plustek backend:
ldd /usr/lib/sane/libsane-plustek.so.1
Also check if scanimage is linked to the right sane-backend libs:
ldd /usr/bin/scanimage

You may need to adjust the paths. All should print something about
libusb.

If sane-find-scanner is linked to libusb and libsane isn't, better ask
your distributer what the heck they are doing.

Bye,
  Henning