summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNishant Chaprana <n.chaprana@samsung.com>2021-03-26 14:08:15 +0530
committerNishant Chaprana <n.chaprana@samsung.com>2021-03-31 14:04:43 +0530
commit0e19853f53eaa5eb2545a25f05ea860fd39ac7d8 (patch)
treecc369058c23090e4e3ebfc72e31d85c73f71b579
parenteb5dc22be1b5bdb93c289503357ee3d57de559b6 (diff)
downloadconnman-0e19853f53eaa5eb2545a25f05ea860fd39ac7d8.tar.gz
connman-0e19853f53eaa5eb2545a25f05ea860fd39ac7d8.tar.bz2
connman-0e19853f53eaa5eb2545a25f05ea860fd39ac7d8.zip
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 <n.chaprana@samsung.com>
-rwxr-xr-xsrc/service.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/service.c b/src/service.c
index 55bb5f6e..c918b64c 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);