[sane-devel] saned problems with 1.0.10-pre3 (incl. segfault)

Henning Meier-Geinitz henning@meier-geinitz.de
Tue, 28 Jan 2003 11:53:00 +0100


Hi,

On Mon, Jan 27, 2003 at 01:35:50PM -0800, Lee Howard wrote:
> So, next step was to get saned running so that the network workstations 
> could use the scanner also.  That's when I ran into trouble.  Now, 
> ultimately I'll be using saned from xinetd, but, for debugging purposes 
> I am running saned from the command-prompt.  I'm not sure what 
> "correct" debugging information should look like, but when I run saned 
> from root, it *seems* to go fine.  The server says this:
> 
> [root@bilbo saned]# /usr/sbin/saned -d128
> [saned] main: starting debug mode (level 128)
> [saned] main: trying to get port for service `sane' (getservbyname)
> [saned] main: port is 6566
> [saned] main: socket ()
> [saned] main: setsockopt ()
> [saned] main: bind ()
> [saned] main: listen ()
> [saned] main: waiting for control connection
> [saned] saned from sane-backends 1.0.10-pre3 ready
> [saned] check_host: access by remote host: 127.0.0.1
> [saned] check_host: remote host is IN_LOOPBACK: access accepted
> [saned] init: access by lee@127.0.0.1 accepted
> [saned] process_request: waiting for request
> [saned] process_request: got request 1
> [saned] process_request: waiting for request
> [saned] process_request: got request 10
> [saned] quit: exiting
> [root@bilbo saned]#

Looks fine.
 
> When I run saned from user "saned", this is what I see instead.  The 
> server says:

[the same]

> The client says this:
> 
> [lee@bilbo lee]$ scanimage -L
> device `plustek:/dev/usb/scanner0' is a Epson Perfection 1260/Photo USB 
> flatbed scanner
> [lee@bilbo lee]
> 
> So it appears that saned is not working the same when running as the 
> "saned" user.

Check permissions, i.e. if saned has read/write permissions on
/dev/usb/scanner0 .

> Whatever the problem is, it can produce a segmentation fault as in
> this example (using a mis-constructed device name).  The server says:

> bash-2.04$ /usr/sbin/saned -d128
[...]
> [saned] check_host: access by remote host: 192.168.0.1
> [saned] check_host: remote host is not IN_LOOPBACK
> [saned] check_host: local hostname: bilbo.x101.com
> [saned] check_host: local hostname (from DNS): bilbo.x101.com
> [saned] check_host: local host address (from DNS): 192.168.0.1
> [saned] check_host: remote host has same addr as local: access accepted
> [saned] init: access by lee@192.168.0.1 accepted
> [saned] process_request: waiting for request
> [saned] process_request: got request 2
> Segmentation fault (core dumped)

I don't get a segfault here when using a similar command.

Please try running saned like this and send the output:

SANE_DEBUG_DLL=255 /usr/sbin/saned -d128

Using device names without a backend name should result in opening the
first backend, that's v4l in my configuration.

> The client says:
> 
> [lee@bilbo lee]$ scanimage --help -d "net:192.168.0.1"
[...]
> scanimage: open of device net:192.168.0.1 failed: Invalid argument

Maybe one of the backends doesn't like empty device names. However,
running with -d "plustek" doesn't result in segfaults here.

> [root@bilbo saned]# gdb /usr/sbin/saned core

Could you try to run saned in gdb directly? Maybe that gives more
information.

Bye,
  Henning