From 0e19853f53eaa5eb2545a25f05ea860fd39ac7d8 Mon Sep 17 00:00:00 2001 From: Nishant Chaprana Date: Fri, 26 Mar 2021 14:08:15 +0530 Subject: [PATCH] Fix NULL pointer dereference Core was generated by `/usr/bin/connmand -n --nobacktrace --noplugin vpn'. Program terminated with signal SIGSEGV, Segmentation fault. >0 connman_device_get_last_connected_ident (device=0x0) at src/device.c:842 842 return device->last_connected_ident; (gdb) bt >0 connman_device_get_last_connected_ident (device=0x0) at src/device.c:842 >1 0x0098ec70 in calculate_score_last_connected (service=0x1ef9eb8) at src/service.c:7900 >2 calculate_score (service=0x1ef9eb8) at src/service.c:7994 >3 calculate_score (service=0x1ef9eb8) at src/service.c:7977 >4 0x0098eed8 in service_compare (a=0x1ef9eb8, b=0x1f010a0) at src/service.c:8138 Change-Id: I7e412f68f71472e28669941b9346ba73281ccd39 Signed-off-by: Nishant Chaprana --- src/service.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/service.c b/src/service.c index 55bb5f6..c918b64 100755 --- a/src/service.c +++ b/src/service.c @@ -7897,6 +7897,9 @@ static int calculate_score_last_connected(struct connman_service *service) unsigned int frequency; device = connman_network_get_device(service->network); + if (!device) + return 0; + last_connected_ident = connman_device_get_last_connected_ident(device); frequency = connman_network_get_frequency(service->network); -- 2.7.4