From 8e38c6158e1e27db8c846963508dae8dad9c6224 Mon Sep 17 00:00:00 2001 From: Nicolo Sponziello Date: Tue, 20 Feb 2024 15:26:13 +0100 Subject: [PATCH] fix potential npe if service discovery fails --- Source/Plugin.BLE.Android/Device.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Source/Plugin.BLE.Android/Device.cs b/Source/Plugin.BLE.Android/Device.cs index aa05a697..bdcfd11b 100644 --- a/Source/Plugin.BLE.Android/Device.cs +++ b/Source/Plugin.BLE.Android/Device.cs @@ -68,7 +68,14 @@ protected override async Task> GetServicesNativeAsync() execute: () => GattServer.DiscoverServices(), getCompleteHandler: (complete, reject) => ((sender, args) => { - complete(GattServer.Services.Select(service => new Service(service, GattServer, _gattCallback, this))); + if (GattServer.Services is null) + { + complete(new List()); + } + else + { + complete(GattServer.Services.Select(service => new Service(service, GattServer, _gattCallback, this))); // this thows NPE + } }), subscribeComplete: handler => _gattCallback.ServicesDiscovered += handler, unsubscribeComplete: handler => _gattCallback.ServicesDiscovered -= handler,