From: Wootak Jung Date: Tue, 22 Jun 2021 00:02:45 +0000 (+0900) Subject: [Bluetooth][Non-ACR] Fix unhandled exception in GetBondedDevice() (#2514) (#3216) X-Git-Tag: accepted/tizen/6.0/unified/20210623.043600~1^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e6cb3925a5575b0d6a3da005485f35eec146ed11;hp=223abc2813d2c9a972b435fded8e7a574be24d9c;p=platform%2Fcore%2Fcsapi%2Ftizenfx.git [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> --- 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); + } } }