lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <7685369CB6CCA443BA30E328A476A8CB2BDD6E@SRV-SATURNUS.OPTION.local>
Date:	Wed, 9 Oct 2013 16:38:34 +0200
From:	"Eric Verdonck" <E.Verdonck@...ion.com>
To:	<marek.belisko@...il.com>, <linux-usb@...r.kernel.org>,
	<netdev@...r.kernel.org>
Cc:	"Jan Dumon" <j.dumon@...ion.com>, <linux-kernel@...r.kernel.org>
Subject: Re: Fwd: [PATCH 1/1] hso: fix problem with wrong status code sent by OPTION GTM601 during RING indication


Met vriendelijke groeten,
Eric Verdonck
Driver Development
Option nv, Gaston Geenslaan 14, B-3001 Leuven

T: +32 16 311 597
F: +32 16 207 164
E-mail: e.verdonck@...ion.com
Website: www.option.com
Disclaimer:http://www.option.com/company/disclaimer.shtml

RPR Leuven 0429.375.448

On 10/09/2013 03:58 PM, Eric Verdonck wrote:
> Hi all,
>
> Thank you very much for your problem report. The line 
> le16_to_cpu(serial_state_notification->wIndex) != W_INDEX) in the 
> function "tiocmget_intr_callback" of the hso driver intents to discard 
> the notification if the notification urb is not coming from the modem 
> interface. Actually the line discards the urb if the interface number 
> differs from the hard coded value W_INDEX ( see Table 67: 
> Class-Specific Notifications of 
> www.usb.org/developers/devclass_docs/usbcdc11.pdf‎ for the meaning of 
> wIndex). Depending of the tyoe of device used and/or depending of the 
> actual configuration of the device the interface number of the modem 
> port will vary. Therefore I would like to suggest to remove this check 
> and replace it by a discard if the urb doesn't belong to an interface 
> with its port_spec set to HSO_PORT_MODEM. This test has the advantage 
> that it's independend of the actual configuration or type of the modem 
> device ( see patch below)
>
> diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
> index e2dd324..288ec46 100644
> --- a/drivers/net/usb/hso.c
> +++ b/drivers/net/usb/hso.c
> @@ -1503,7 +1503,7 @@ static void tiocmget_intr_callback(struct urb *urb)
> if (serial_state_notification->bmRequestType != BM_REQUEST_TYPE ||
> serial_state_notification->bNotification != B_NOTIFICATION ||
> le16_to_cpu(serial_state_notification->wValue) != W_VALUE ||
> - le16_to_cpu(serial_state_notification->wIndex) != W_INDEX ||
> + (serial->parent->port_spec & HSO_PORT_MASK) != HSO_PORT_MODEM ||
> le16_to_cpu(serial_state_notification->wLength) != W_LENGTH) {
> dev_warn(&usb->dev,
> "hso received invalid serial state notification\n");
> Best regards,
> Eric Verdonck
> Firmware development engineer
> Option nv, Gaston Geenslaan 14, B-3001 Leuven
>
> T: +32 16 311 597
> F: +32 16 207 164
> E-mail:e.verdonck@...ion.com
> Website:www.option.com  
> Disclaimer:http://www.option.com/company/disclaimer.shtml
>
> RPR Leuven 0429.375.448
>
> On 10/09/2013 01:37 PM, Jan Dumon wrote:
>>
>>
>>
>> -------- Original Message --------
>> Subject: 	Fwd: [PATCH 1/1] hso: fix problem with wrong status code 
>> sent by OPTION GTM601 during RING indication
>> Date: 	Fri, 4 Oct 2013 08:49:46 +0200
>> From: 	Jan Dumon <J.Dumon@...ion.com>
>> To: 	Axel Schollaert <a.schollaert@...ion.com>
>>
>>
>>
>>
>>
>>
>> -------- Original Message --------
>> Subject: 	[PATCH 1/1] hso: fix problem with wrong status code sent by 
>> OPTION GTM601 during RING indication
>> Date: 	Wed, 2 Oct 2013 09:00:18 +0200
>> From: 	Dr. H. Nikolaus Schaller <hns@...delico.com>
>> To: 	Jan Dumon <j.dumon@...ion.com>
>> CC: 	Belisko Marek <marek.belisko@...il.com>, 
>> linux-usb@...r.kernel.org, netdev@...r.kernel.org, 
>> linux-kernel@...r.kernel.org
>>
>>
>>
>> Hi Jan,
>>
>> we are using a GTM601 modem (Firmware 1.7) for a while and have spotted an
>> issue that under some conditions the modem sends a packed wIndex over USB
>> that is rejected by the hso driver making troubles afterwards. Not rejecting makes
>> it work fine.
>>
>> BR,
>> Nikolaus Schaller
>>
>> ---
>>
>>  From f5c7e15b61f2ce4fe3105ff914f6bfaf5d74af0d Mon Sep 17 00:00:00 2001
>> From: "H. Nikolaus Schaller"<hns@...delico.com>
>> Date: Thu, 15 Nov 2012 14:40:57 +0100
>> Subject: [PATCH 1/1] hso: fix problem with wrong status code sent by OPTION
>>   GTM601 during RING indication
>>
>>   It has been observed that the GTM601 with 1.7 firmware sometimes sends a value
>>   wIndex that has bit 0x04 set instead of being reset as the code expects. So we
>>   mask it for the error check.
>>   
>>   Seehttp://lists.goldelico.com/pipermail/gta04-owner/2012-February/001643.html
>>
>> Signed-off-by: NeilBrown<neilb@...e.de>
>> Signed-off-by: H. Nikolaus Schaller<hns@...delico.de>
>> ---
>>   drivers/net/usb/hso.c |    3 ++-
>>   1 files changed, 2 insertions(+), 1 deletions(-)
>>
>> diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
>> index cba1d46..d146e26 100644
>> --- a/drivers/net/usb/hso.c
>> +++ b/drivers/net/usb/hso.c
>> @@ -1503,7 +1503,8 @@ static void tiocmget_intr_callback(struct urb *urb)
>>   	if (serial_state_notification->bmRequestType != BM_REQUEST_TYPE ||
>>   	    serial_state_notification->bNotification != B_NOTIFICATION ||
>>   	    le16_to_cpu(serial_state_notification->wValue) != W_VALUE ||
>> -	    le16_to_cpu(serial_state_notification->wIndex) != W_INDEX ||
>> +	    (le16_to_cpu(serial_state_notification->wIndex) & ~0x4) !=
>> +		W_INDEX ||
>>   	    le16_to_cpu(serial_state_notification->wLength) != W_LENGTH) {
>>   		dev_warn(&usb->dev,
>>   			 "hso received invalid serial state notification\n");
>> -- 
>> 1.7.7.4
>>
>>
>>
>>
>>
>>
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ