linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Hendrik Sattler <post@hendrik-sattler.de>
To: Hendrik Sattler <post@hendrik-sattler.de>,
	Jaganath Kanakkassery <jaganath.k@samsung.com>,
	<linux-bluetooth@vger.kernel.org>
Subject: Re: [PATCH obexd 2/2] gobex: Fix ABORT request not processing
Date: Fri, 13 Jan 2012 13:27:11 +0100	[thread overview]
Message-ID: <82c765e00dbfd5c5b2adf4059f7205b7@mail.hendrik-sattler.de> (raw)
In-Reply-To: <20120113112111.GA5880@x220>

Am 13.01.2012 12:21, schrieb Johan Hedberg:
> Hi Hendrik,
>
> On Fri, Jan 13, 2012, Hendrik Sattler wrote:
>>>>> 		opcode = obex->rx_last_op;
>>>>> 		/* Unexpected response -- fail silently */
>>>>>-		if (opcode > 0x1f && opcode < 0xff) {
>>>>>+		if (opcode > G_OBEX_OP_ABORT && opcode < 0xff) {
>>>>> 			obex->rx_data = 0;
>>>>> 			return TRUE;
>>>>> 		}
>>>>
>>>>This one always evaluates to false because 0xff == G_OBEX_OP_ABORT 
>>>> |
>>>>FINAL_BIT.
>>>
>>> The value of obex->rx_last_op is stored with the final bit cleared,
>>> so the < 0xff part could also be removed from the test. The value
>>> 0x1f has been picked because the IrDA OBEX specification defines 
>>> 0x10
>>> - 0x1f as a user-definable range, so anything between 0x1f and 0x7f
>>> isn't actually valid. The correct test would then become:
>>>
>>>	if (opcode > 0x1f && opcode != G_OBEX_OP_ABORT)
>>>
>>> Jaganath, with the above change the patch should be ok, but the 
>>> more
>>> surprising thing to me here is that this implies we're missing one 
>>> or
>>> more unit tests for Abort. Could you create a patch to add those 
>>> too?
>>> (if we're really strict those tests should go in before this patch 
>>> so
>>> that it's actually possible to see that the patch makes a
>>> difference).
>>
>> User-definable does not mean invalid. It only means that these can 
>> be
>> used for custom commands. These are still bound to the rules of the
>> OBEX protocol. I've never seen one using that, though.
>
> Exactly. You might want to re-read what I said and the test I 
> proposed.

I did.

>> Else you'd also have to filter 0x04 and the range 0x08-0x0f because
>> these are marked as "reserved".
>
> With the test I proposed we filter neither reserved (since they might
> get meaning in new spec versions) nor user-defined opcodes.

Your propose if-line discards all packets with opcodes in the range
0x20-0x1e. I would remove that if-line (and also the wrong comments 
that
talks about responses but means requests).

OTOH, the reserved and user-defined packets will fail immediately after
that anyway due to the check of the length of non-header data returning
-1 for those cases.
Not only that but it immediately drops connection because of that? It 
could
at least get the packet and send a negative response.

HS


  reply	other threads:[~2012-01-13 12:27 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-13  9:56 [PATCH obexd 2/2] gobex: Fix ABORT request not processing Jaganath Kanakkassery
2012-01-13 10:29 ` Hendrik Sattler
2012-01-13 10:54   ` Johan Hedberg
2012-01-13 11:07     ` Hendrik Sattler
2012-01-13 11:21       ` Johan Hedberg
2012-01-13 12:27         ` Hendrik Sattler [this message]
2012-01-13 13:01           ` Johan Hedberg
2012-01-13 13:36             ` Hendrik Sattler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=82c765e00dbfd5c5b2adf4059f7205b7@mail.hendrik-sattler.de \
    --to=post@hendrik-sattler.de \
    --cc=jaganath.k@samsung.com \
    --cc=linux-bluetooth@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).