From e6cb3925a5575b0d6a3da005485f35eec146ed11 Mon Sep 17 00:00:00 2001 From: Wootak Jung Date: Tue, 22 Jun 2021 09:02:45 +0900 Subject: [PATCH 1/1] [Bluetooth][Non-ACR] Fix unhandled exception in GetBondedDevice() (#2514) (#3216) Device is not bonded : System.NullReferenceException: Object reference not set to an instance of an object. at System.SpanHelpers.IndexOf(Byte& searchSpace, Byte value, Int32 length) at System.String.Ctor(SByte* value) at System.Runtime.InteropServices.Marshal.PtrToStringAnsi(IntPtr ptr) at Tizen.Network.Bluetooth.BluetoothUtils.ConvertStructToDeviceClass(BluetoothDeviceStruct device) at Tizen.Network.Bluetooth.BluetoothAdapterImpl.GetBondedDevice(String address) at Tizen.Network.Bluetooth.BluetoothAdapter.GetBondedDevice(String address) Signed-off-by: DoHyun Pyun Signed-off-by: Wootak Jung Co-authored-by: dh79pyun <31202060+dh79pyun@users.noreply.github.com> --- .../Tizen.Network.Bluetooth/BluetoothStructs.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Tizen.Network.Bluetooth/Tizen.Network.Bluetooth/BluetoothStructs.cs b/src/Tizen.Network.Bluetooth/Tizen.Network.Bluetooth/BluetoothStructs.cs index 3ac5216..b5f32ea 100644 --- a/src/Tizen.Network.Bluetooth/Tizen.Network.Bluetooth/BluetoothStructs.cs +++ b/src/Tizen.Network.Bluetooth/Tizen.Network.Bluetooth/BluetoothStructs.cs @@ -251,6 +251,8 @@ namespace Tizen.Network.Bluetooth internal static BluetoothDevice ConvertStructToDeviceClass(BluetoothDeviceStruct device) { const int DeviceNameLengthMax = 248; + const int UuidLengthMax = 50; + BluetoothDevice resultDevice = new BluetoothDevice(); Collection uuidList = null; @@ -260,8 +262,11 @@ namespace Tizen.Network.Bluetooth Marshal.Copy (device.ServiceUuidList, extensionList, 0, device.ServiceCount); uuidList = new Collection (); foreach (IntPtr extension in extensionList) { - string uuid = Marshal.PtrToStringAnsi (extension); - uuidList.Add (uuid); + if (extension != IntPtr.Zero) + { + string uuid = Marshal.PtrToStringAnsi (extension, UuidLengthMax); + uuidList.Add (uuid); + } } } -- 2.7.4