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
next prev parent 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).