From owner-freebsd-usb@FreeBSD.ORG Thu Oct 29 12:48:05 2009 Return-Path: Delivered-To: freebsd-usb@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6764E106566B for ; Thu, 29 Oct 2009 12:48:05 +0000 (UTC) (envelope-from hselasky@c2i.net) Received: from swip.net (mailfe07.swip.net [212.247.154.193]) by mx1.freebsd.org (Postfix) with ESMTP id C12038FC2E for ; Thu, 29 Oct 2009 12:48:04 +0000 (UTC) X-Cloudmark-Score: 0.000000 [] X-Cloudmark-Analysis: v=1.0 c=1 a=MnI1ikcADjEx7bvsp0jZvQ==:17 a=h-jz1bJkzrhvRISlK9gA:9 a=n5UBslrurhzNYr5mzwcA:7 a=YRVb4av8aYC6aS0ezHPtShzRTzcA:4 Received: from [188.126.201.140] (account mc467741@c2i.net HELO laptop.adsl.tele2.no) by mailfe07.swip.net (CommuniGate Pro SMTP 5.2.16) with ESMTPA id 1318495923; Thu, 29 Oct 2009 13:48:02 +0100 From: Hans Petter Selasky To: "Daniel O'Connor" Date: Thu, 29 Oct 2009 13:47:10 +0100 User-Agent: KMail/1.11.4 (FreeBSD/9.0-CURRENT; KDE/4.2.4; i386; ; ) References: <200909282240.53802.doconnor@gsoft.com.au> <200910291205.05757.hselasky@c2i.net> <200910292313.24636.doconnor@gsoft.com.au> In-Reply-To: <200910292313.24636.doconnor@gsoft.com.au> X-Face: (%:6u[ldzJ`0qjD7sCkfdMmD*RxpOwEEQ+KWt[{J#x6ow~JO:,zwp.(t; @Aq :4:&nFCgDb8[3oIeTb^'",;u{5{}C9>"PuY\)!=#\u9SSM-nz8+SR~B\!qBv MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200910291347.10390.hselasky@c2i.net> Cc: freebsd-usb@freebsd.org Subject: Re: SANE vs USB scanner on 8.0 X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Oct 2009 12:48:05 -0000 On Thursday 29 October 2009 13:43:23 Daniel O'Connor wrote: > On Thu, 29 Oct 2009, Hans Petter Selasky wrote: > > On Thursday 29 October 2009 04:55:53 Daniel O'Connor wrote: > > > On Wed, 30 Sep 2009, Daniel O'Connor wrote: > > > > On Mon, 28 Sep 2009, Hans Petter Selasky wrote: > > > > > - if (sscanf(dev, "libusb:%d:%d", &busnum, &devnum) != 2) > > > > > + if ((sscanf(dev, "libusb:%d:%d", &busnum, &devnum) != > > > > > 2) && + (sscanf(dev, "libusb:/dev/usb:ugen%d.%d", > > > > > &busnum, &devnum) != 2)) { > > > > > DBG (DL_MAJOR_ERROR, "%s: could not parse device > > > > > string: %s\n", me, strerror(errno)); > > > > > return 0; > > > > > > > > > > If it works, get the patch sent to the sane developers. > > > > > > > > Unfortunately no (I reworked it to match the path it uses) and > > > > now it segfaults. I rebuilt sane with debugging (is there some > > > > way to make libtool not strip on install? It's so tedious > > > > manually editing makefiles to remove -s..) as well as libusb. > > > > > > Have you had a chance to look at this? :) > > > > > > Thanks. > > > > > > PS I'm not subscribed to usb@ so perhaps I missed a reply. > > > > No. Please file a bug-report on the sane mailing list. > > Hmm, but isn't the crash in libusb? > > (I understand that it may be possible that sane is using libusb badly > however!) I think it is some freed' libusb memory structure pointers which are passed into libusb. There was a similar issue fixed in another sane USB driver recently. Existing drivers have some assumptions about that after a USB bus scan that the device nodes are still existing for already existing devices returned in previous scans, which is not true for LibUSB under FreeBSD. The libUSB device pointer usage in sane needs to be audited. Probably it is best to figure out where the following functions are called: usb_find_busses() usb_find_devices() usb_device() usb_get_busses() And carefully check how the libusb device handle pointers are updated. --HPS