diff mbox series

[v3] Fix for Bluetooth SIG test L2CAP/COS/CFD/BV-14-C

Message ID 20201116155626.GA27472@jimmy-ryzen-home (mailing list archive)
State New, archived
Headers show
Series [v3] Fix for Bluetooth SIG test L2CAP/COS/CFD/BV-14-C | expand

Commit Message

Jimmy Wahlberg Nov. 16, 2020, 3:56 p.m. UTC
This test case is meant to verify that multiple
unknown options is included in the response.

BLUETOOTH CORE SPECIFICATION Version 5.2 | Vol 3, Part A
page 1057

'On an unknown option failure (Result=0x0003),
the option(s) that contain anoption type field that is not
understood by the recipient of the L2CAP_CONFIGURATION_REQ
packet shall be included in the L2CAP_CONFIGURATION_RSP
packet unless they are hints.'

Before this patch:

> ACL Data RX: Handle 11 flags 0x02 dlen 24
      L2CAP: Configure Request (0x04) ident 18 len 16
        Destination CID: 64
        Flags: 0x0000
        Option: Unknown (0x10) [mandatory]
        10 00 11 02 11 00 12 02 12 00
< ACL Data TX: Handle 11 flags 0x00 dlen 17
      L2CAP: Configure Response (0x05) ident 18 len 9
        Source CID: 64
        Flags: 0x0000
        Result: Failure - unknown options (0x0003)
        Option: Unknown (0x10) [mandatory]
        12

After this patch:

> ACL Data RX: Handle 11 flags 0x02 dlen 24
      L2CAP: Configure Request (0x04) ident 5 len 16
        Destination CID: 64
        Flags: 0x0000
        Option: Unknown (0x10) [mandatory]
        10 00 11 02 11 00 12 02 12 00
< ACL Data TX: Handle 11 flags 0x00 dlen 23
      L2CAP: Configure Response (0x05) ident 5 len 15
        Source CID: 64
        Flags: 0x0000
        Result: Failure - unknown options (0x0003)
        Option: Unknown (0x10) [mandatory]
        10 11 01 11 12 01 12

Signed-off-by: Jimmy Wahlberg <jimmywa@spotify.com>
---
 net/bluetooth/l2cap_core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Luiz Augusto von Dentz Nov. 17, 2020, 12:01 a.m. UTC | #1
Hi Jimmy.

On Mon, Nov 16, 2020 at 8:01 AM Jimmy Wahlberg <jimmywa@spotify.com> wrote:
>
> This test case is meant to verify that multiple
> unknown options is included in the response.
>
> BLUETOOTH CORE SPECIFICATION Version 5.2 | Vol 3, Part A
> page 1057
>
> 'On an unknown option failure (Result=0x0003),
> the option(s) that contain anoption type field that is not
> understood by the recipient of the L2CAP_CONFIGURATION_REQ
> packet shall be included in the L2CAP_CONFIGURATION_RSP
> packet unless they are hints.'
>
> Before this patch:
>
> > ACL Data RX: Handle 11 flags 0x02 dlen 24
>       L2CAP: Configure Request (0x04) ident 18 len 16
>         Destination CID: 64
>         Flags: 0x0000
>         Option: Unknown (0x10) [mandatory]
>         10 00 11 02 11 00 12 02 12 00
> < ACL Data TX: Handle 11 flags 0x00 dlen 17
>       L2CAP: Configure Response (0x05) ident 18 len 9
>         Source CID: 64
>         Flags: 0x0000
>         Result: Failure - unknown options (0x0003)
>         Option: Unknown (0x10) [mandatory]
>         12
>
> After this patch:
>
> > ACL Data RX: Handle 11 flags 0x02 dlen 24
>       L2CAP: Configure Request (0x04) ident 5 len 16
>         Destination CID: 64
>         Flags: 0x0000
>         Option: Unknown (0x10) [mandatory]
>         10 00 11 02 11 00 12 02 12 00
> < ACL Data TX: Handle 11 flags 0x00 dlen 23
>       L2CAP: Configure Response (0x05) ident 5 len 15
>         Source CID: 64
>         Flags: 0x0000
>         Result: Failure - unknown options (0x0003)
>         Option: Unknown (0x10) [mandatory]
>         10 11 01 11 12 01 12
>
> Signed-off-by: Jimmy Wahlberg <jimmywa@spotify.com>

Reviewed-by: Luiz Augusto Von Dentz <luiz.von.dentz@intel.com>

> ---
>  net/bluetooth/l2cap_core.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
> index 1ab27b90ddcb..16956f323688 100644
> --- a/net/bluetooth/l2cap_core.c
> +++ b/net/bluetooth/l2cap_core.c
> @@ -3627,7 +3627,7 @@ static int l2cap_parse_conf_req(struct l2cap_chan *chan, void *data, size_t data
>                         if (hint)
>                                 break;
>                         result = L2CAP_CONF_UNKNOWN;
> -                       *((u8 *) ptr++) = type;
> +                       l2cap_add_conf_opt(&ptr, (u8)type, sizeof(u8), type, endptr - ptr);
>                         break;
>                 }
>         }
> --
> 2.25.1
>
> Updated commit message to follow this feedback from bluez.test.bot
>
> ##############################
> Test: CheckGitLint - FAIL
> Output:
> Fix for Bluetooth SIG test L2CAP/COS/CFD/BV-14-C.
> 1: T3 Title has trailing punctuation (.): "Fix for Bluetooth SIG test L2CAP/COS/CFD/BV-14-C."
>
>
bluez.test.bot@gmail.com Nov. 17, 2020, 2:53 a.m. UTC | #2
This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=385191

---Test result---

##############################
Test: CheckPatch - FAIL
Output:
workflow: Add workflow files for ci
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#20: 
new file mode 100644

total: 0 errors, 1 warnings, 49 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

"[PATCH] workflow: Add workflow files for ci" has style problems, please review.

NOTE: If any of the errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.


##############################
Test: CheckGitLint - PASS

##############################
Test: CheckBuildK - PASS



---
Regards,
Linux Bluetooth
Marcel Holtmann Nov. 23, 2020, 11:55 a.m. UTC | #3
Hi Jimmy,

> This test case is meant to verify that multiple
> unknown options is included in the response.
> 
> BLUETOOTH CORE SPECIFICATION Version 5.2 | Vol 3, Part A
> page 1057
> 
> 'On an unknown option failure (Result=0x0003),
> the option(s) that contain anoption type field that is not
> understood by the recipient of the L2CAP_CONFIGURATION_REQ
> packet shall be included in the L2CAP_CONFIGURATION_RSP
> packet unless they are hints.'
> 
> Before this patch:
> 
>> ACL Data RX: Handle 11 flags 0x02 dlen 24
>      L2CAP: Configure Request (0x04) ident 18 len 16
>        Destination CID: 64
>        Flags: 0x0000
>        Option: Unknown (0x10) [mandatory]
>        10 00 11 02 11 00 12 02 12 00
> < ACL Data TX: Handle 11 flags 0x00 dlen 17
>      L2CAP: Configure Response (0x05) ident 18 len 9
>        Source CID: 64
>        Flags: 0x0000
>        Result: Failure - unknown options (0x0003)
>        Option: Unknown (0x10) [mandatory]
>        12
> 
> After this patch:
> 
>> ACL Data RX: Handle 11 flags 0x02 dlen 24
>      L2CAP: Configure Request (0x04) ident 5 len 16
>        Destination CID: 64
>        Flags: 0x0000
>        Option: Unknown (0x10) [mandatory]
>        10 00 11 02 11 00 12 02 12 00
> < ACL Data TX: Handle 11 flags 0x00 dlen 23
>      L2CAP: Configure Response (0x05) ident 5 len 15
>        Source CID: 64
>        Flags: 0x0000
>        Result: Failure - unknown options (0x0003)
>        Option: Unknown (0x10) [mandatory]
>        10 11 01 11 12 01 12
> 
> Signed-off-by: Jimmy Wahlberg <jimmywa@spotify.com>
> ---
> net/bluetooth/l2cap_core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

patch has been applied to bluetooth-next tree.

Regards

Marcel
diff mbox series

Patch

diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index 1ab27b90ddcb..16956f323688 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -3627,7 +3627,7 @@  static int l2cap_parse_conf_req(struct l2cap_chan *chan, void *data, size_t data
 			if (hint)
 				break;
 			result = L2CAP_CONF_UNKNOWN;
-			*((u8 *) ptr++) = type;
+			l2cap_add_conf_opt(&ptr, (u8)type, sizeof(u8), type, endptr - ptr);
 			break;
 		}
 	}