platform/upstream/bluez.git
17 months agohog-lib: Make use of UHID_CREATE2
Luiz Augusto von Dentz [Tue, 18 Jan 2022 23:45:17 +0000 (15:45 -0800)]
hog-lib: Make use of UHID_CREATE2

This convert the use of UHID_CREATE to UHID_CREATE2 which gives back
the information of reports being numbered or not thus avoiding the need
to parse the report map in order to check if there are a report number
on them since UHID_START gives that information:

UHID_START:
  This is sent when the HID device is started. Consider this as an
  answer to UHID_CREATE2. This is always the first event that is sent.
  Note that this event might not be available immediately after
  write(UHID_CREATE2) returns.
  Device drivers might require delayed setups.
  This event contains a payload of type uhid_start_req. The "dev_flags"
  field describes special behaviors of a device. The following flags
  are defined:

      - UHID_DEV_NUMBERED_FEATURE_REPORTS
      - UHID_DEV_NUMBERED_OUTPUT_REPORTS
      - UHID_DEV_NUMBERED_INPUT_REPORTS

  Each of these flags defines whether a given report-type uses numbered
  reports. If numbered reports are used for a type, all messages from
  the kernel already have the report-number as prefix. Otherwise, no
  prefix is added by the kernel. For messages sent by user-space to the
  kernel, you must adjust the prefixes according to these flags

Signed-off-by: Manika Shrivastava <manika.sh@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
17 months agoavrcp: Fix unaligned access
Luiz Augusto von Dentz [Fri, 14 Jan 2022 22:05:48 +0000 (14:05 -0800)]
avrcp: Fix unaligned access

This fixes the access to struct media_attribute_header which needs to
be packed and it also replaces the use of ntohs/ntohl to byteorder
conversion helpers which are a lot more clear on what byteorder shall
be used.

Signed-off-by: Manika Shrivastava <manika.sh@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
17 months agomonitor/avctp: Fix parsing of GetElementAttribute
Luiz Augusto von Dentz [Fri, 14 Jan 2022 22:02:05 +0000 (14:02 -0800)]
monitor/avctp: Fix parsing of GetElementAttribute

AVRCP byte order is always big endian:

Audio/Video Remote Control / Profile Specification - Page 20:

 'Transfer Octet Order; Packets shall transfer multiple-octet fields in
 standard network octet order (Big Endian), with more significant
 (high-order) octets being transferred before less-significant (low-order)
 octets.'

Signed-off-by: Manika Shrivastava <manika.sh@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
17 months agodevice: Fix device can't be scanned for 5 mins after reboot
Archie Pusaka [Thu, 13 Jan 2022 07:46:52 +0000 (15:46 +0800)]
device: Fix device can't be scanned for 5 mins after reboot

After the patches which limit the attempts of doing remote name
resolving, there's an issue which prevents BlueZ to RNR new devices
for 5 minutes after reboot. It's caused by failed_time is init to 0,
and is then treated as the timestamp when the device failed RNR.
However, actually there is no failure yet.

This patch fixes it by always allowing RNR when failed_time = 0.

Signed-off-by: Manika Shrivastava <manika.sh@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
17 months agohog: Add input queue while uhid device has not been created
Luiz Augusto von Dentz [Wed, 12 Jan 2022 22:07:36 +0000 (14:07 -0800)]
hog: Add input queue while uhid device has not been created

Since report map is only read after all reports it is possible to start
receiving notifications before uhid has been created, so this adds a
queue to store the events while the report map is pending and once uhid
has been created dequeue the events.

Signed-off-by: Manika Shrivastava <manika.sh@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
17 months agohog: Fix read order of attributes
Luiz Augusto von Dentz [Tue, 11 Jan 2022 01:35:15 +0000 (17:35 -0800)]
hog: Fix read order of attributes

The Report Map must be read after all other attributes otherwise the
Kernel driver may start using UHID_SET_REPORT which requires the
report->id to be known in order to resolve the attribute to send to.

Fixes: https://github.com/bluez/bluez/issues/220
Signed-off-by: Manika Shrivastava <manika.sh@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
17 months agomedia: Fix crash when endpoint replies with an error to SetConfiguration
Luiz Augusto von Dentz [Wed, 12 Jan 2022 15:22:22 +0000 (07:22 -0800)]
media: Fix crash when endpoint replies with an error to SetConfiguration

If endpoint responds to SetConfiguration the transport is being
destroyed without removing it from the list leading a crash.

Fixes: https://github.com/bluez/bluez/issues/269
Signed-off-by: Manika Shrivastava <manika.sh@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
17 months agotools/mesh-cfgclient: Fix config menu help message
Inga Stotland [Thu, 6 Jan 2022 19:26:32 +0000 (11:26 -0800)]
tools/mesh-cfgclient: Fix config menu help message

An info message suggesting to request a remote node composition
should reference the correct menu command: "composition-get".

Signed-off-by: Manika Shrivastava <manika.sh@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
17 months agotools/mesh-cfgclient: Fix typos in config storage
Inga Stotland [Fri, 7 Jan 2022 21:50:03 +0000 (13:50 -0800)]
tools/mesh-cfgclient: Fix typos in config storage

Fix keyword typos and comments.

Signed-off-by: Manika Shrivastava <manika.sh@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
17 months agoavdtp: Fix runtime errors passing NULL to memcpy
Luiz Augusto von Dentz [Fri, 7 Jan 2022 21:28:46 +0000 (13:28 -0800)]
avdtp: Fix runtime errors passing NULL to memcpy

Passing NULL to memcpy is considered undefined behavior which leads to
the following runtime errors:

profiles/audio/avdtp.c:2709:2: runtime error: null pointer passed as
argument 1, which is declared to never be null
profiles/audio/avdtp.c:2709:2: runtime error: null pointer passed as
argument 2, which is declared to never be null
profiles/audio/avdtp.c:3326:2: runtime error: null pointer passed as
argument 2, which is declared to never be null
profiles/audio/avdtp.c:500:3: runtime error: null pointer passed as
argument 2, which is declared to never be null

Signed-off-by: Manika Shrivastava <manika.sh@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
17 months agoshared/util: Add util_memdup
Luiz Augusto von Dentz [Thu, 6 Jan 2022 19:45:12 +0000 (11:45 -0800)]
shared/util: Add util_memdup

This adds util_memdup which is intended to replace g_memdup since
replacing that with g_memdup2 requires bumping the glib version.

Signed-off-by: Manika Shrivastava <manika.sh@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
17 months agoshared/util: Rename btd_malloc to util_malloc
Luiz Augusto von Dentz [Wed, 5 Jan 2022 23:53:35 +0000 (15:53 -0800)]
shared/util: Rename btd_malloc to util_malloc

util functions are not limited to daemon only which is normally the case
when using btd prefix.

Signed-off-by: Manika Shrivastava <manika.sh@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
17 months agoemulator: Add support for vendor commands
Luiz Augusto von Dentz [Tue, 4 Jan 2022 22:43:15 +0000 (14:43 -0800)]
emulator: Add support for vendor commands

This adds support for vendor commands reserving a single opcode (0xfc10)
so it can be extended using subcommands, similar to how MSFT works.

The first subcommand (0x00) enables the emulator to generate arbitrary
events using the commands parameters:

> tools/hcitool cmd 3f 10 00 22 24 d0 d0 d0 d0 d0 d0 ff ff
< HCI Command: Vendor (0x3f|0x0010) plen 11
        00 22 24 d0 d0 d0 d0 d0 d0 ff ff
."$........
Bluetooth: hci0: Malformed HCI Event: 0x22
> HCI Event: Inquiry Result with R.. (0x22) plen 9
        Num responses: 36
        Page scan repetition mode: Reserved (0xff)
        Page period mode: Reserved (0xff)
        Class: 0xffffd0
          Major class: Uncategorized, specific device code not specified
          Minor class: 0x34
          Limited Discoverable Mode
          invalid service class
        Clock offset: 0x6368
        RSSI: 105 dBm (0x69)
> HCI Event: Command Complete (0x0e) plen 4
      Vendor (0x3f|0x0010) ncmd 1
        Status: Success (0x00)

Signed-off-by: Manika Shrivastava <manika.sh@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
17 months agoconfigure: Fix use of obsolete macros
Luiz Augusto von Dentz [Wed, 5 Jan 2022 22:02:05 +0000 (14:02 -0800)]
configure: Fix use of obsolete macros

This fixes the following warnings when using autoconf >= 2.70:

  configure.ac:19: warning: The macro `AC_LANG_C' is obsolete.
  configure.ac:45: warning: The macro `AC_HELP_STRING' is obsolete.
  configure.ac:440: warning: AC_OUTPUT should be used without arguments.

The macros are replacing following the autoconf documentation:

https://www.gnu.org/software/autoconf/manual/autoconf-2.70/html_node/Obsolete-Macros.html

Fixes: https://github.com/bluez/bluez/issues/246
Signed-off-by: Manika Shrivastava <manika.sh@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
18 months agoshared/gatt-server: Fix att length check logic 57/291057/2 accepted/tizen/unified/20230427.155828
Wootak Jung [Fri, 7 Apr 2023 05:50:34 +0000 (14:50 +0900)]
shared/gatt-server: Fix att length check logic

Change-Id: Ia5d5e43d20ad952c5a993398ab8dea42529a6162
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
19 months agoRevert "main_da.conf: Change ExchangeMTU value" 70/290770/1
Wootak Jung [Mon, 3 Apr 2023 04:43:05 +0000 (13:43 +0900)]
Revert "main_da.conf: Change ExchangeMTU value"

This reverts commit aa8431976bb677bf38e50a27d074cae7ff31dccd.

Change-Id: I644958733de7abf0a850d798ced8bd86b725348f

19 months agomain_da.conf: Change ExchangeMTU value 91/289891/1
Wootak Jung [Wed, 15 Mar 2023 06:48:07 +0000 (15:48 +0900)]
main_da.conf: Change ExchangeMTU value

Change-Id: I11a8a199070f6c0a96981fcfe959c7051653aded

19 months agoadapter_le_vsc_features: Do not set adv_inst_max to 1 in DA case 18/289518/2 accepted/tizen/unified/20230313.022904
Wootak Jung [Thu, 9 Mar 2023 06:08:51 +0000 (15:08 +0900)]
adapter_le_vsc_features: Do not set adv_inst_max to 1 in DA case

Change-Id: Iecaf149146e335d04e83c1db25c15ec46431593b
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
20 months agoadapter: Add adv data custom name handling logic 03/288403/2 accepted/tizen/unified/20230303.162748
Wootak Jung [Thu, 16 Feb 2023 06:36:58 +0000 (15:36 +0900)]
adapter: Add adv data custom name handling logic

If the name filed is not empty, custom name is already set

Change-Id: Icf5aac6275fc09a3090a47283c994fbc69c9d7c3
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
20 months agoMerge "Add support for custom advertising flags." into tizen accepted/tizen/unified/20230223.162144
Wootak Jung [Mon, 20 Feb 2023 06:42:39 +0000 (06:42 +0000)]
Merge "Add support for custom advertising flags." into tizen

20 months agoAdd support for custom advertising flags. 49/286849/7
Jakub Latusek [Wed, 1 Feb 2023 06:00:13 +0000 (15:00 +0900)]
Add support for custom advertising flags.

It is required to set proper advertising flags when establishing a
connection using
Bluetooth low energy to properly recognize device type.
Without this, the Linux device cannot recognize the Tizen device
properly and establish a connection.

Change-Id: I2dcbcd053a8de4c4954653ae8a5f55fbed775f66
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
Signed-off-by: Jakub Latusek <j.latusek@samsung.com>
20 months agoadapter: Fix pending_settings value not clear issue 43/288243/1
Wootak Jung [Tue, 14 Feb 2023 05:14:53 +0000 (14:14 +0900)]
adapter: Fix pending_settings value not clear issue

Remove the duplicated connectable mode setting logic

Change-Id: I994a87907394d705a9c20401aff2719845805f7a
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
21 months agoda: Add DA feature newly 28/287428/4 accepted/tizen/unified/20230202.015300
Wootak Jung [Fri, 27 Jan 2023 09:18:32 +0000 (18:18 +0900)]
da: Add DA feature newly

da feature contains many da models as well as fhub

Use da feature for below functions:
set adv data flag, offloading, log

Change-Id: I34f3b4039b421f7c22e1fca1c5d2a296ee1ee5cf
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
21 months agofhub: apply DA feature (offloading) 27/287427/2
Wootak Jung [Fri, 27 Jan 2023 09:14:54 +0000 (18:14 +0900)]
fhub: apply DA feature (offloading)

Change-Id: Iae80e51a7d7180ef3563fb744e58b4d6dc47f64e
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
21 months agoUse HCI error code instead of MGMT disconnection reason 62/286562/1 accepted/tizen/unified/20230111.174532
Dohyun Pyun [Mon, 20 Jun 2022 08:37:27 +0000 (17:37 +0900)]
Use HCI error code instead of MGMT disconnection reason

Change-Id: If715b847372b0be82ebdd8404a8b2a39bca01970
Signed-off-by: Dohyun Pyun <dh79.pyun@samsung.com>
23 months agoRename symbol to prevent redefinition 65/285065/3
Marek Pikuła [Mon, 5 Dec 2022 17:51:10 +0000 (18:51 +0100)]
Rename symbol to prevent redefinition

For Tizen RISC-V build there is a `sync` symbol first declared in
/usr/include/unistd.h:1005:13.

Change-Id: I7d5f96e93d72841196a1aaae52c269736765919c
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
23 months agoMerge "riscv64: Set ARCH64 on RISC-V" into tizen submit/tizen/20221206.101102
Lukasz Stelmach [Tue, 6 Dec 2022 09:30:57 +0000 (09:30 +0000)]
Merge "riscv64: Set ARCH64 on RISC-V" into tizen

23 months agocore: Use timeout_add_seconds 41/285041/1 accepted/tizen/unified/20221206.170555
Wootak Jung [Mon, 5 Dec 2022 04:20:29 +0000 (13:20 +0900)]
core: Use timeout_add_seconds

Replace calls to g_timeout_add_seconds() by the timeout_add_seconds()
wrapper which takes care of 0 delay.

Change-Id: I9b8cc6d6d3f625eb3a51720446b4aaf720ca65ec
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
23 months agoriscv64: Set ARCH64 on RISC-V 59/284559/1 submit/tizen/20221206.094110
Marek Pikuła [Mon, 14 Nov 2022 11:49:54 +0000 (12:49 +0100)]
riscv64: Set ARCH64 on RISC-V

Change-Id: I8c87bccaf6ccde2f82cefa387c0b5c6f26f1c0f1
Signed-off-by: Łukasz Stelmach <l.stelmach@samsung.com>
23 months agoSupport RFCOMM Client and Server with same UUID 41/284041/1 accepted/tizen/unified/20221115.172855
Anuj Jain [Wed, 9 Nov 2022 04:57:43 +0000 (10:27 +0530)]
Support RFCOMM Client and Server with same UUID

This patch add functionality to support both RFCOMM
client and server with same UUID at a time.

Change-Id: Ie64d46d9d50de65f322112a6a3793b05922254f4
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
2 years agoa2dp: Fix not detecting transport connection collision 66/283666/1 accepted/tizen/unified/20221103.165739
Luiz Augusto von Dentz [Fri, 16 Sep 2022 21:35:28 +0000 (14:35 -0700)]
a2dp: Fix not detecting transport connection collision

Some headsets appears to attempt to connect back after receiving
AVDTP_Open which would cause unexpected transitions since setup->io
and stream->io would not be in sync:

> ACL Data RX: Handle 70 flags 0x02 dlen 6
      Channel: 64 len 2 [PSM 25 mode Basic (0x00)] {chan 0}
      AVDTP: Open (0x06) Response Accept (0x02) type 0x00 label 2 nosp 0
< ACL Data TX: Handle 70 flags 0x00 dlen 12
      L2CAP: Connection Request (0x02) ident 6 len 4
        PSM: 25 (0x0019)
        Source CID: 67
> ACL Data RX: Handle 70 flags 0x02 dlen 12
      L2CAP: Connection Request (0x02) ident 10 len 4
        PSM: 25 (0x0019)
        Source CID: 68
< ACL Data TX: Handle 70 flags 0x00 dlen 16
      L2CAP: Connection Response (0x03) ident 10 len 8
        Destination CID: 68
        Source CID: 68
        Result: Connection pending (0x0001)
        Status: Authorization pending (0x0002)
< ACL Data TX: Handle 70 flags 0x00 dlen 16
      L2CAP: Connection Response (0x03) ident 10 len 8
        Destination CID: 68
        Source CID: 68
        Result: Connection successful (0x0000)
        Status: No further information available (0x0000)
> ACL Data RX: Handle 70 flags 0x02 dlen 16
      L2CAP: Connection Response (0x03) ident 6 len 8
        Destination CID: 69
        Source CID: 67
        Result: Connection successful (0x0000)
        Status: No further information available (0x0000)

Fixes: https://github.com/bluez/bluez/issues/327
Change-Id: Ifb7f3014cb73701e591cead934f0ce04bab4ca1c
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
2 years agofhub: create the bluez log to /run/network/log 49/281849/2
Ayush Garg [Thu, 22 Sep 2022 08:56:49 +0000 (14:26 +0530)]
fhub: create the bluez log to /run/network/log

Change-Id: I6564eeb4b46e142de74587c350c13427b773d04c
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoFix the coverity issues 56/281456/1 accepted/tizen_7.0_unified_hotfix tizen_7.0_hotfix accepted/tizen/7.0/unified/20221110.062900 accepted/tizen/7.0/unified/hotfix/20221116.110628 accepted/tizen/unified/20220920.110657 tizen_7.0_m2_release
Wootak Jung [Mon, 19 Sep 2022 07:28:33 +0000 (16:28 +0900)]
Fix the coverity issues

Change-Id: Iea3544fb1a71b9cde9693646b598310777bae66e

2 years agofhub: diallaow A2DP multistream and change avrcp version 38/281338/1
Ayush Garg [Wed, 14 Sep 2022 04:48:52 +0000 (10:18 +0530)]
fhub: diallaow A2DP multistream and change avrcp version

Change-Id: I4f89fe9e46689fc7854b2f7313aca46f41226bc3
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agofhub: apply DA feature (default a2dp mode, adv data flag) 45/281145/2
Ayush Garg [Tue, 13 Sep 2022 09:19:48 +0000 (14:49 +0530)]
fhub: apply DA feature (default a2dp mode, adv data flag)

Change-Id: I9251ad5ddac62efeb6c743ed086c13f526594c21
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agofhub: do not support Player Application Settings in AVRCP TG role 48/281048/1
Ayush Garg [Thu, 8 Sep 2022 08:05:29 +0000 (13:35 +0530)]
fhub: do not support Player Application Settings in AVRCP TG role

Change-Id: I566d1fe5aa1dd0e047a7c6bb5614a6d8fc5e4e2b
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agofhub: Add new profile for Family Hub 20/280820/1
Ayush Garg [Mon, 5 Sep 2022 09:32:21 +0000 (15:02 +0530)]
fhub: Add new profile for Family Hub

Change-Id: I9b3bb497e4359e1e4c33817fab4c7bb8f9a8fb56
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoadapter: Set max_filter to 0 not empty if filter not supported 43/275843/2 accepted/tizen/unified/20220615.135403 submit/tizen/20220614.010252
Wootak Jung [Thu, 2 Jun 2022 23:19:55 +0000 (08:19 +0900)]
adapter: Set max_filter to 0 not empty if filter not supported

D/BLUETOOTH_HAL( 6284): bt-hal-adapter-dbus-handler.c:
    __bt_adapter_all_properties_cb(862) > LE Supported features
D/BLUETOOTH_HAL( 6284): bt-hal-adapter-dbus-handler.c:
    __bt_adapter_all_properties_cb(888) > le supported features values are NOT provided by Stack
...
E/BLUETOOTH_HAL( 2510): bt-hal-adapter-le.c:
    _bt_hal_get_available_adv_slot_id(347) > le_adv_slot is NULL
E/BLUETOOTH_HAL( 2510): bt-hal-gatt-server.c:
    bt_hal_gatts_allocate_adv_slot(3637) > failed to get the adv_slot
E/BLUETOOTH_HAL( 2510): bt-hal-gatt-server.c:
    gatt_server_multi_adv_enable(3749) > failed to get adv_slot

Change-Id: I41515e7efa47dbb2255451e845b209a31d0a6b5f

2 years agoMerge "adapter: Disable platform scan filter feature" into tizen submit/tizen/20220531.044319 submit/tizen/20220601.225953
Wootak Jung [Thu, 26 May 2022 22:45:00 +0000 (22:45 +0000)]
Merge "adapter: Disable platform scan filter feature" into tizen

2 years agoadapter: Disable platform scan filter feature 93/275493/1
Wootak Jung [Thu, 26 May 2022 01:04:01 +0000 (10:04 +0900)]
adapter: Disable platform scan filter feature

Change-Id: I27798e150d25068c59706f18eeded947d75ad00b

2 years agoRemove the ceritifcate definition 80/275480/1
Dohyun Pyun [Wed, 25 May 2022 22:34:14 +0000 (07:34 +0900)]
Remove the ceritifcate definition

We will handle the certification logic in the runtime

Change-Id: Ic8b96a2f88d7821f1cdba7c8244618c637e5685d
Signed-off-by: Dohyun Pyun <dh79.pyun@samsung.com>
2 years agoCheck the certification mode in the runtime 89/275389/1
Dohyun Pyun [Mon, 23 May 2022 05:25:26 +0000 (14:25 +0900)]
Check the certification mode in the runtime

Change-Id: Ibde861ed71f0998d61fdbab25681c8226df19ed7
Signed-off-by: Dohyun Pyun <dh79.pyun@samsung.com>
2 years agoModify the packaging for hcidump 91/274891/1
Dohyun Pyun [Wed, 11 May 2022 11:18:15 +0000 (20:18 +0900)]
Modify the packaging for hcidump

Change-Id: I443586fcbc5fe01dae47a8edd826f5875e98751e
Signed-off-by: Dohyun Pyun <dh79.pyun@samsung.com>
2 years agoshared/gatt-server: Add PTS certification logic 49/274749/1
Wootak Jung [Mon, 9 May 2022 01:31:26 +0000 (10:31 +0900)]
shared/gatt-server: Add PTS certification logic

GATT/CL/GAI/BI-01-C
GATT/SR/GAR/BI-04-C
GATT/SR/GAR/BI-10-C
GATT/SR/GAW/BI-12-C

Change-Id: I4fce46e7f2ea669b445767b597d0a6475e71381f

2 years agoaudio/avrcp: Add PTS certification related logic 19/273919/3 accepted/tizen/unified/20220503.071451 submit/tizen/20220419.002311 submit/tizen/20220502.051527 submit/tizen/20220502.224718
Wootak Jung [Mon, 18 Apr 2022 00:55:02 +0000 (09:55 +0900)]
audio/avrcp: Add PTS certification related logic

IOPT/SR/SDSS/BV-02-I

Change-Id: I8d209bd6f2e541870d8e6446522dceb533dfdb0d

2 years agoshared/gatt-server: Add PTS certification related logic 18/273918/3
Wootak Jung [Mon, 18 Apr 2022 00:52:10 +0000 (09:52 +0900)]
shared/gatt-server: Add PTS certification related logic

GATT/SR/GAW/BI-05-C
GATT/SR/GAR/BI-34-C
GATT/SR/GAR/BI-35-C
GATT/SR/GAW/BI-12-C

Change-Id: I049f410d9eecdc490ba275c907891def179ee8c7

2 years agoAdd certificate definition for PTS 17/273917/1
Wootak Jung [Mon, 18 Apr 2022 00:46:42 +0000 (09:46 +0900)]
Add certificate definition for PTS

Change-Id: I3619e2dc82cdd7253e08109ee1345e9e1527c1fd

2 years agoFix svace issue 59/272559/1 accepted/tizen/unified/20220323.062650 submit/tizen/20220322.002237
Wootak Jung [Mon, 21 Mar 2022 02:35:36 +0000 (11:35 +0900)]
Fix svace issue

Remove unnecessary check logic

Change-Id: I39d8c4753d30be92c300bafb7f7aef11d4f7f9b9

2 years agoRemove unnecessary dbus policy 45/272445/1 accepted/tizen/unified/20220318.133040 submit/tizen/20220317.013237
Wootak Jung [Thu, 17 Mar 2022 01:20:10 +0000 (10:20 +0900)]
Remove unnecessary dbus policy

FAILED(assert) at /busconfig/policy[1]/allow[5] : You mustn't use
send_interface without send_destination or send_destination_prefix,
unless you limit the rule to only signals with send_type="signal"

Change-Id: I0074697fa485ea60fe2a1264e7499043cd41a2e6

2 years agoMerge "Add avtest to test rpm" into tizen submit/tizen/20220314.225934 submit/tizen/20220316.003414
Wootak Jung [Mon, 14 Mar 2022 07:58:46 +0000 (07:58 +0000)]
Merge "Add avtest to test rpm" into tizen

2 years agoAdd avtest to test rpm 81/272281/1
Wootak Jung [Mon, 14 Mar 2022 05:20:37 +0000 (14:20 +0900)]
Add avtest to test rpm

Change-Id: I36cb45a3d2f3da08374dff4094ae45a6491984c6

2 years agoUpdate the version to 5.63 bluez_upgrade_5.63 submit/tizen/20220313.220938
Ayush Garg [Fri, 11 Mar 2022 13:40:49 +0000 (19:10 +0530)]
Update the version to 5.63

Change-Id: I04c0b9d1795e7ad9c9b8101f9e69131e43f102a7
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoRelease 5.63
Marcel Holtmann [Wed, 5 Jan 2022 21:49:00 +0000 (22:49 +0100)]
Release 5.63

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agogattrib: Fix passing NULL to memcpy
Luiz Augusto von Dentz [Tue, 21 Dec 2021 20:48:31 +0000 (12:48 -0800)]
gattrib: Fix passing NULL to memcpy

This fixes the following runtime error:

  attrib/gattrib.c:198:2: runtime error: null pointer passed as
  argument 2, which is declared to never be null

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobootstrap-configure: Enable sanitizer options
Luiz Augusto von Dentz [Mon, 20 Dec 2021 23:50:52 +0000 (15:50 -0800)]
bootstrap-configure: Enable sanitizer options

This makes bootstrap-configure enables all sanitizers.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobuild: Fix build when sanitizer are enabled
Luiz Augusto von Dentz [Mon, 20 Dec 2021 23:51:49 +0000 (15:51 -0800)]
build: Fix build when sanitizer are enabled

This fixes various issues found when sanitizers are enabled.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobuild: Add sanitizer options
Luiz Augusto von Dentz [Mon, 20 Dec 2021 23:49:45 +0000 (15:49 -0800)]
build: Add sanitizer options

Build using Address Sanitizer (asan), Leak Sanitizer (lsan), or
Undefined Behavior Sanitizer (ubsan) by using one of these options for
the configure script:

  --enable-asan
  --enable-lsan
  --enable-ubsan

For each of these to work, the compiler must support the requested
sanitizer and the requisite libraries must be installed (libasan,
liblsan, libubsan).

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotest-hog: Add monitor support
Luiz Augusto von Dentz [Tue, 21 Dec 2021 19:32:51 +0000 (11:32 -0800)]
test-hog: Add monitor support

This adds monitor support so data can properly be decoded by the likes
of btmon:

= test-hog: /TP/HGRF/RH/BV-01-I - init
= test-hog: /TP/HGRF/RH/BV-01-I - setup
= test-hog: /TP/HGRF/RH/BV-01-I - setup complete
= test-hog: /TP/HGRF/RH/BV-01-I - run
> test-hog: User Data RX
      ATT: Read By Group Type Request (0x10) len 6
        Handle range: 0x0001-0xffff
        Attribute group type: Primary Service (0x2800)

Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agodevice: Fix bogus errors on load_att_info
Luiz Augusto von Dentz [Wed, 15 Dec 2021 22:48:07 +0000 (14:48 -0800)]
device: Fix bogus errors on load_att_info

load_att_info would attempt to load attributes file from the storage but
in case it doesn't exists it would print an error instead of just
bailing out as attributes file is created on demand when there are
something to be stored.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoadvertising: Fix reporting advertising properties
Claudio Takahasi [Wed, 15 Dec 2021 18:05:27 +0000 (15:05 -0300)]
advertising: Fix reporting advertising properties

InterfacesAdded signal for LEAdvertisingManager1 might be emitted
containing initial/default properties values and property changed is
not emitted after reading advertising features. This patch registers
the interface (LEAdvertisingManager1) after reading advertising features
from kernel.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoshared/gatt-client: Skip included service if it cannot be resolved
Luiz Augusto von Dentz [Wed, 10 Nov 2021 22:10:53 +0000 (14:10 -0800)]
shared/gatt-client: Skip included service if it cannot be resolved

Instead of failing if the included service cannot be resolved just
skip it so doesn't fail and the discovery is stop due to a possible
application error.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobtdev: Add support for BT_HCI_CMD_LE_CREATE_CONN_CANCEL
Luiz Augusto von Dentz [Fri, 10 Dec 2021 23:19:07 +0000 (15:19 -0800)]
btdev: Add support for BT_HCI_CMD_LE_CREATE_CONN_CANCEL

This adds support for BT_HCI_CMD_LE_CREATE_CONN_CANCEL so it is able to
generate proper command complete.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoprofiles/health: Replace random number generation function
Tedd Ho-Jeong An [Wed, 8 Dec 2021 22:39:23 +0000 (14:39 -0800)]
profiles/health: Replace random number generation function

This patch replaces the rand() function to the getrandom() syscall.

It was reported by the Coverity scan
  rand() should not be used for security-related applications, because
  linear congruential algorithms are too easy to break

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoplugins: Replace random number generation function
Tedd Ho-Jeong An [Wed, 8 Dec 2021 22:39:22 +0000 (14:39 -0800)]
plugins: Replace random number generation function

This patch replaces the rand() function to the getrandom() syscall.

It was reported by the Coverity scan
  rand() should not be used for security-related applications, because
  linear congruential algorithms are too easy to break

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotools/btgatt-server: Replace random number generation function
Tedd Ho-Jeong An [Wed, 8 Dec 2021 22:39:21 +0000 (14:39 -0800)]
tools/btgatt-server: Replace random number generation function

This patch replaces the rand() function to the getrandom() syscall.

It was reported by the Coverity scan
  rand() should not be used for security-related applications, because
  linear congruential algorithms are too easy to break

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoperipheral: Replace random number generation function
Tedd Ho-Jeong An [Wed, 8 Dec 2021 22:39:20 +0000 (14:39 -0800)]
peripheral: Replace random number generation function

This patch replaces the rand() function to the getrandom() syscall.

It was reported by the Coverity scan
  rand() should not be used for security-related applications, because
  linear congruential algorithms are too easy to break

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoemulator: Replace random number generation function
Tedd Ho-Jeong An [Wed, 8 Dec 2021 22:39:19 +0000 (14:39 -0800)]
emulator: Replace random number generation function

This patch replaces the rand() function to the getrandom() syscall.

It was reported by the Coverity scan
  rand() should not be used for security-related applications, because
  linear congruential algorithms are too easy to break

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoclient/gatt: Fix property_change in WriteValue for desc
Ulisses Costa [Mon, 6 Dec 2021 23:40:01 +0000 (00:40 +0100)]
client/gatt: Fix property_change in WriteValue for desc

g_dbus_emit_property_changed was not working properly in the WriteValue
for the descriptor because the Characteristic interface was being used.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomesh: Don't log error for false positive mkdir failure
Inga Stotland [Tue, 30 Nov 2021 23:14:12 +0000 (15:14 -0800)]
mesh: Don't log error for false positive mkdir failure

When invoking mkdir() for mesh configuration storage, do not
report an error if a target directory already exists.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agogatt: Omit MTU if not connected
Luiz Augusto von Dentz [Mon, 29 Nov 2021 17:59:42 +0000 (09:59 -0800)]
gatt: Omit MTU if not connected

If not connected there is no reason to expose the MTU as that only
valid while connected.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agogatt-client: Fix disconnecting due to GattCharacteristic1.MTU
Javier de San Pedro [Sat, 27 Nov 2021 22:21:36 +0000 (23:21 +0100)]
gatt-client: Fix disconnecting due to GattCharacteristic1.MTU

After the MTU dbus property patches in 5.62 we are seeing bluetoothd
terminate frequently with "Disconnected from D-Bus. Exiting." msgs.
Apparently this is because bluetoothd sent an invalid reply to a D-Bus
Property Get (for GattCharacteristic1's MTU).
Multiple issues in bluez Github.com project reported similar behavior;
at least #235 (see Fixes:), #219, and likely #238.

When the Characteristic1 object is still cached/alive, but the
underlying att connection is not (e.g. someone just called Disconnect),
the property getter (characteristic_get_mtu) right now returns false.
However, gdbus seems to ignore the return value and sends the empty reply
message anyway (rather than a dbus error?), and this seems to cause
the dbus connection to be terminated (due to the ill-formed reply?).
bluetoothd then aborts.

This patch makes the property value BT_ATT_DEFAULT_LE_MTU if the
underlying att object does not exist, rather than returning an invalid
message. This is consistent with the existing PropertyChanged signal
behavior (we will emit a PropertyChange only if a larger MTU is
exchanged), and fixes the issue on my machines.
An alternative could be to change gdbus behavior, but I'm not sure if we
are allowed to return an error here anyway without causing problems in
other dbus libraries/wrappers.

Fixes: aaa0c4996ae9 ("gatt: Add implementation of GattCharacteristic1.MTU")
Fixes: https://github.com/bluez/bluez/issues/235
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agodoc: Add Name Request Fail flag in device found event
Archie Pusaka [Thu, 25 Nov 2021 07:06:27 +0000 (15:06 +0800)]
doc: Add Name Request Fail flag in device found event

Userspace should use this new flag to decide whether to do the remote
name resolving or not.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomain: add configurable RemoteNameRequestRetryDelay parameter
Archie Pusaka [Thu, 25 Nov 2021 07:06:26 +0000 (15:06 +0800)]
main: add configurable RemoteNameRequestRetryDelay parameter

This specifies how long will the userspace ignore a peer with an
unknown name after a failed remote name resolving procedure.

The peer device can still be connected, this only prevents the remote
name resolving procedure retry.

Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agodevice: Save remote name request attempts into cache file
Archie Pusaka [Thu, 25 Nov 2021 07:06:25 +0000 (15:06 +0800)]
device: Save remote name request attempts into cache file

Since a peer device is potentially removed if not discovered for more
than 30 seconds, we would lost the remote name request activity when
the device is rediscovered. This could end up with a remote name
request much sooner than we intend it to be.

Therefore, put the RNR record into a cache file, so we can recover it
when the peer device is rediscovered.

Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoListen and process remote name resolving failure
Archie Pusaka [Thu, 25 Nov 2021 07:06:24 +0000 (15:06 +0800)]
Listen and process remote name resolving failure

When Remote Name Resolve ends with failure, record this occurrence and
prevent remote name resolving for the same device for some time.

Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomgmt: Add NAME_REQUEST_FAILED flag for device_found event
Archie Pusaka [Thu, 25 Nov 2021 07:06:23 +0000 (15:06 +0800)]
mgmt: Add NAME_REQUEST_FAILED flag for device_found event

Report failure when resolving remote name to userspace. This is useful
so the userspace can make an informed decision when to retry name
resolving procedure.

Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobuild: Check for linux/uinput.h and linux/uhid.h
Luiz Augusto von Dentz [Tue, 23 Nov 2021 21:32:12 +0000 (13:32 -0800)]
build: Check for linux/uinput.h and linux/uhid.h

This makes configure to check the presence of linux/uinput.h and
linux/uhid.h kernel uapi headers since the code no longer contain copies
of them and otherwise the code cannot be build without them:

checking linux/uinput.h usability... yes
checking linux/uinput.h presence... yes
checking for linux/uinput.h... yes
checking linux/uhid.h usability... yes
checking linux/uhid.h presence... yes
checking for linux/uhid.h... yes

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoemulator: fix potential resource leak
Tedd Ho-Jeong An [Tue, 16 Nov 2021 06:49:49 +0000 (22:49 -0800)]
emulator: fix potential resource leak

This patch releases the allocated fd to prevent the potential resource
leak. This was reported by the Coverity scan.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agocore: Update default advmon Sampling_Period to 0xFF
Manish Mandlik [Sat, 20 Nov 2021 15:29:41 +0000 (07:29 -0800)]
core: Update default advmon Sampling_Period to 0xFF

Update default Advertisemet Monitor Sampling_Period to 0xFF. It
indicates that controller will report only one advertisement per
monitoring period for a device. This will help reduce the power
consumption drastically.

Reviewed-by: Miao-chen Chou <mcchou@google.com>
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoadv_monitor: Change sampling period to uint16_t
Manish Mandlik [Sat, 20 Nov 2021 15:29:40 +0000 (07:29 -0800)]
adv_monitor: Change sampling period to uint16_t

In the Advertisement Monitor API, RSSISamplingPeriod is an unsigned
value. Change sampling_period variable to uint16_t in the code.

More info: doc/advertisement-monitor-api.txt

Reviewed-by: Archie Pusaka <apusaka@google.com>
Reviewed-by: Miao-chen Chou <mcchou@google.com>
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoadv_monitor: Invoke DeviceFound/Lost on tracked monitors
Manish Mandlik [Sat, 20 Nov 2021 15:29:39 +0000 (07:29 -0800)]
adv_monitor: Invoke DeviceFound/Lost on tracked monitors

This patch delivers DeviceFound/DeviceLost events to apps over D-Bus
whenever controller starts/stops tracking a device.

Tests performed:
- Add a monitor and verify that DeviceFound/DeviceLost events are
  received whenever controller starts/stops monitoring.
- Verify from logs that only one Adv Report is received from the
  controller when Sampling_Period is set to 0xFF and the
  DeviceFound/DeviceLost functionality still works as intended.
- Verify that DeviceFound/DeviceLost is reported appropriately even
  when the Active Scanning is in progress.
- Verify that the reconnection also works properly with and without
  any active Advertisement Monitor.

Reviewed-by: Miao-chen Chou <mcchou@google.com>
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoadv_monitor: Receive the Device Found/Lost events
Manish Mandlik [Sat, 20 Nov 2021 15:29:38 +0000 (07:29 -0800)]
adv_monitor: Receive the Device Found/Lost events

This patch registers callback functions to receive the Advertisement
Monitor Device Found and Device Lost events. It also disables software
based filtering whenever controller offloading support is available.

Test performed:
- Verified by logs that the MSFT Monitor Device is received from the
  controller and the bluetoothd is notified whenever the controller
  starts/stops monitoring a device.

Reviewed-by: Miao-chen Chou <mcchou@google.com>
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agolib: Add definitions of the Adv Monitor Device Found/Lost events
Manish Mandlik [Sat, 20 Nov 2021 15:29:37 +0000 (07:29 -0800)]
lib: Add definitions of the Adv Monitor Device Found/Lost events

This patch adds definitions of the new Advertisement Monitor Device
Found and Device Lost events to indicate that the controller has
started/stopped tracking a particular device.

Reviewed-by: Miao-chen Chou <mcchou@google.com>
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agodoc: Introduce the Adv Monitor Device Found/Lost events
Manish Mandlik [Sat, 20 Nov 2021 15:29:36 +0000 (07:29 -0800)]
doc: Introduce the Adv Monitor Device Found/Lost events

This patch introduces two new MGMT events
MGMT_EV_ADV_MONITOR_DEVICE_FOUND and MGMT_EV_ADV_MONITOR_DEVICE_LOST to
indicate that the controller has started/stopped tracking a particular
device matching one of the already added Advertisement Monitor.

If the controller offloading support is not available,
MGMT_EV_ADV_MONITOR_DEVICE_FOUND event is also used to report all
advertisements to perform software based filtering whenever we are not
active scanning.

Reviewed-by: Miao-chen Chou <mcchou@google.com>
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agouinput: Remove local copy of uinput.h
Luiz Augusto von Dentz [Mon, 22 Nov 2021 19:39:00 +0000 (11:39 -0800)]
uinput: Remove local copy of uinput.h

uinput.h is part of kernel uapi nowadays so it can be included directly
from linux/uinput.h which has a compatible definition with 32 bits
systems:

https://github.com/bluez/bluez/issues/84#issuecomment-942155841

Fixes: https://github.com/bluez/bluez/issues/84
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoclient: Fix uninitiailzed scalar variable
Tedd Ho-Jeong An [Sat, 13 Nov 2021 02:35:59 +0000 (18:35 -0800)]
client: Fix uninitiailzed scalar variable

This patch fixes the uninitiailzed varialble(CWE-457) reported by
the Coverity scan.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomonitor: Fix uninitiailzed scalar variable
Tedd Ho-Jeong An [Sat, 13 Nov 2021 02:35:58 +0000 (18:35 -0800)]
monitor: Fix uninitiailzed scalar variable

This patch fixes the uninitiailzed varialble(CWE-457) reported by
the Coverity scan.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoemulator: Fix uninitiailzed scalar variable
Tedd Ho-Jeong An [Sat, 13 Nov 2021 02:35:57 +0000 (18:35 -0800)]
emulator: Fix uninitiailzed scalar variable

This patch fixes the uninitiailzed varialble(CWE-457) reported by
the Coverity scan.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoadmin: fix devices not reset
Yun-Hao Chung [Fri, 12 Nov 2021 04:01:49 +0000 (12:01 +0800)]
admin: fix devices not reset

When |admin_policy_remove| is called, we set |devices| to NULL but never
set it back until |admin_init|. This makes admin lost track of current
registered device interface, so the next |admin_policy_removed| will not
be able to unregister those interfaces.

Reviewed-by: Archie Pusaka <apusaka@chromium.org>
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoshared/gatt-server: Fix heap overflow when appending prepare writes
Luiz Augusto von Dentz [Tue, 8 Jun 2021 23:46:49 +0000 (16:46 -0700)]
shared/gatt-server: Fix heap overflow when appending prepare writes

The code shall check if the prepare writes would append more the
allowed maximum attribute length.

Fixes https://github.com/bluez/bluez/security/advisories/GHSA-479m-xcq5-9g2q

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agosdpd: Fix leaking buffers stored in cstates cache
Luiz Augusto von Dentz [Thu, 15 Jul 2021 18:01:20 +0000 (11:01 -0700)]
sdpd: Fix leaking buffers stored in cstates cache

These buffer shall only be keep in cache for as long as they are
needed so this would cleanup any client cstates in the following
conditions:

 - There is no cstate on the response
 - No continuation can be found for cstate
 - Different request opcode
 - Respond with an error
 - Client disconnect

Fixes: https://github.com/bluez/bluez/security/advisories/GHSA-3fqg-r8j5-f5xq
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotools/mesh: Add <Vendor ID> option to sub-add cmd
Jefferson Zhai [Fri, 5 Nov 2021 16:57:35 +0000 (09:57 -0700)]
tools/mesh: Add <Vendor ID> option to sub-add cmd

If the Subscription being added is a Vendor Model, there needs to be a
4th parameter. Fixes oversight of not supporting vendor model in Meshctl.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomgmt-tester: Add test for Device Privacy Mode flag
Luiz Augusto von Dentz [Fri, 5 Nov 2021 19:04:49 +0000 (12:04 -0700)]
mgmt-tester: Add test for Device Privacy Mode flag

This tests the use of Set Device Flags to set Device Privacy Mode which
results in the following sequence:

@ MGMT Event: Command Compl.. (0x0001) plen 10  {0x0001}
      Set Device Flags (0x0050) plen 7
        Status: Success (0x00)
        LE Address: BC:9A:78:56:34:12 (OUI BC-9A-78)
< HCI Command: LE Set Exten.. (0x08|0x0042) plen 6
        Extended scan: Disabled (0x00)
        Filter duplicates: Disabled (0x00)
        Duration: 0 msec (0x0000)
        Period: 0.00 sec (0x0000)
= mgmt-tester: Set Device Flags (0x0050): Success (0x00)
= mgmt-tester: Test condition complete, 4 left
= mgmt-tester: New Device Flags Changed event received
= mgmt-tester: Test condition complete, 3 left
> HCI Event: Command Complete (0x0e) plen 4
      LE Set Extended Scan Enable (0x08|0x0042) ncmd 1
        Status: Success (0x00)
< HCI Command: LE Set Addre.. (0x08|0x002d) plen 1
        Address resolution: Disabled (0x00)
= mgmt-tester: HCI Command 0x2042 length 6
> HCI Event: Command Complete (0x0e) plen 4
      LE Set Address Resolution Enable (0x08|0x002d) ncmd 1
        Status: Success (0x00)
< HCI Command: LE Set Priva.. (0x08|0x004e) plen 8
        Peer Identity address type: Public (0x00)
        Peer Identity address: BC:9A:78:56:34:12 (OUI BC-9A-78)
        Privacy Mode: Use Device Privacy (0x01)
= mgmt-tester: HCI Command 0x202d length 1
= mgmt-tester: Test condition complete, 2 left
> HCI Event: Command Complete (0x0e) plen 4
      LE Set Privacy Mode (0x08|0x004e) ncmd 1
        Status: Success (0x00)
< HCI Command: LE Set Addre.. (0x08|0x002d) plen 1
        Address resolution: Enabled (0x01)
= mgmt-tester: HCI Command 0x204e length 8
= mgmt-tester: Test condition complete, 1 left
> HCI Event: Command Complete (0x0e) plen 4
      LE Set Address Resolution Enable (0x08|0x002d) ncmd 1
        Status: Success (0x00)
< HCI Command: LE Set Exten.. (0x08|0x0041) plen 8
        Own address type: Random (0x03)
        Filter policy: Ignore not in accept list (0x01)
        PHYs: 0x01
        Entry 0: LE 1M
          Type: Passive (0x00)
          Interval: 60.000 msec (0x0060)
          Window: 30.000 msec (0x0030)
= mgmt-tester: HCI Command 0x202d length 1
= mgmt-tester: Test condition complete, 0 left

Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomonitor: Add support for Device Privacy Mode flag
Luiz Augusto von Dentz [Fri, 5 Nov 2021 19:03:23 +0000 (12:03 -0700)]
monitor: Add support for Device Privacy Mode flag

This adds proper decoding for Device Privacy Mode flag:

@ MGMT Command: Set Device... (0x0050) plen 11  {0x0001}
        LE Address: BC:9A:78:56:34:12 (OUI BC-9A-78)
        Current Flags: 0x00000002
          Device Privacy Mode
@ MGMT Event: Device Flags... (0x002a) plen 15  {0x0002}
        LE Address: BC:9A:78:56:34:12 (OUI BC-9A-78)
        Supported Flags: 0x00000003
          Remote Wakeup
          Device Privacy Mode
        Current Flags: 0x00000002
          Device Privacy Mode

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoadapter: Set Device Privacy Mode
Luiz Augusto von Dentz [Thu, 4 Nov 2021 00:26:30 +0000 (17:26 -0700)]
adapter: Set Device Privacy Mode

This adds support for setting Device Privacy flag when enabled in
main.conf via Privacy = device,limited-device.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomain.conf: Rework privacy options
Luiz Augusto von Dentz [Thu, 4 Nov 2021 00:25:33 +0000 (17:25 -0700)]
main.conf: Rework privacy options

This reworks privacy options so the limited discoverable is only
available when controller mode is set to dual.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomgmt-api: Add new Device Flag to use Device Privacy Mode
Luiz Augusto von Dentz [Wed, 3 Nov 2021 22:26:07 +0000 (15:26 -0700)]
mgmt-api: Add new Device Flag to use Device Privacy Mode

This adds a new flag to Get/Set Device Flag commands so it is possible
to set the Device Privacy Mode which allows to connect when the
remote device uses either identity or random address.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobtdev: Add support for LE Set Privacy mode
Luiz Augusto von Dentz [Tue, 2 Nov 2021 05:33:08 +0000 (22:33 -0700)]
btdev: Add support for LE Set Privacy mode

This adds support for LE Set Privacy mode which is required when using
Device Privacy mode:

< HCI Command: LE Set Priva.. (0x08|0x004e) plen 8
        Peer Identity address type: Public (0x00)
        Peer Identity address: BC:9A:78:56:34:12 (OUI BC-9A-78)
        Privacy Mode: Use Device Privacy (0x01)
> HCI Event: Command Complete (0x0e) plen 4
      LE Set Privacy Mode (0x08|0x004e) ncmd 1

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomedia: Fix memory leak
Luiz Augusto von Dentz [Tue, 9 Nov 2021 21:50:38 +0000 (13:50 -0800)]
media: Fix memory leak

This fixes the following memory leak as a result of not freeing
app->proxies:

160 (32 direct, 128 indirect) bytes in 1 blocks are definitely lost in
loss record 218 of 261
   at 0x484086F: malloc (vg_replace_malloc.c:381)
   by 0x1CF80E: btd_malloc (util.c:33)
   by 0x1CF24D: queue_new (queue.c:47)
   by 0x144DB9: create_app (media.c:2262)
   by 0x144DB9: register_app (media.c:2322)
   by 0x1CC148: process_message (object.c:246)

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoclient/gatt: Fix using atoi
Luiz Augusto von Dentz [Mon, 8 Nov 2021 19:15:44 +0000 (11:15 -0800)]
client/gatt: Fix using atoi

atoi doesn't support values entered in hexadecimal (0x...) which is
likely the prefered format for the likes of handles, etc, so this
replaces the uses of atoi with strtol.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>