From 2663245e6c4062b405c2f2c096a2b718800ab69e Mon Sep 17 00:00:00 2001 From: Terence Zhang Date: Thu, 6 Dec 2018 19:51:11 +0800 Subject: [PATCH 1/2] Fix the fault exception issue in socket_recvfrom with the null pointer parameter as SocketAddress *addr. --- .../cellular/framework/AT/AT_CellularStack.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/features/cellular/framework/AT/AT_CellularStack.cpp b/features/cellular/framework/AT/AT_CellularStack.cpp index 5008884f61b..eb27e44f68d 100644 --- a/features/cellular/framework/AT/AT_CellularStack.cpp +++ b/features/cellular/framework/AT/AT_CellularStack.cpp @@ -307,7 +307,12 @@ nsapi_size_or_error_t AT_CellularStack::socket_recvfrom(nsapi_socket_t handle, S _at.unlock(); if (ret_val != NSAPI_ERROR_OK) { - tr_error("Socket %d create %s error %d", find_socket_index(socket), addr->get_ip_address(), ret_val); + if(addr){ + tr_error("Socket %d create %s error %d", find_socket_index(socket), addr->get_ip_address(), ret_val); + } + else{ + tr_error("Socket %d create error %d", find_socket_index(socket), ret_val); + } return ret_val; } } @@ -319,7 +324,12 @@ nsapi_size_or_error_t AT_CellularStack::socket_recvfrom(nsapi_socket_t handle, S _at.unlock(); if (ret_val >= 0) { - tr_info("Socket %d recv %d bytes from %s port %d", find_socket_index(socket), ret_val, addr->get_ip_address(), addr->get_port()); + if(addr){ + tr_info("Socket %d recv %d bytes from %s port %d", find_socket_index(socket), ret_val, addr->get_ip_address(), addr->get_port()); + } + else{ + tr_info("Socket %d recv %d bytes", find_socket_index(socket), ret_val); + } } else if (ret_val != NSAPI_ERROR_WOULD_BLOCK) { tr_error("Socket %d recv error %d", find_socket_index(socket), ret_val); } From afd6d92e8d5ffb7ad5a56667cb0cd94b8d4cbef7 Mon Sep 17 00:00:00 2001 From: Terence Zhang Date: Mon, 10 Dec 2018 10:38:27 +0800 Subject: [PATCH 2/2] Fix for the fault exception issue: https://github.com/ARMmbed/mbed-os-example-cellular/issues/112 --- features/cellular/framework/AT/AT_CellularStack.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/features/cellular/framework/AT/AT_CellularStack.cpp b/features/cellular/framework/AT/AT_CellularStack.cpp index eb27e44f68d..055c040ce5a 100644 --- a/features/cellular/framework/AT/AT_CellularStack.cpp +++ b/features/cellular/framework/AT/AT_CellularStack.cpp @@ -307,12 +307,7 @@ nsapi_size_or_error_t AT_CellularStack::socket_recvfrom(nsapi_socket_t handle, S _at.unlock(); if (ret_val != NSAPI_ERROR_OK) { - if(addr){ - tr_error("Socket %d create %s error %d", find_socket_index(socket), addr->get_ip_address(), ret_val); - } - else{ - tr_error("Socket %d create error %d", find_socket_index(socket), ret_val); - } + tr_error("Socket %d create error %d", find_socket_index(socket), ret_val); return ret_val; } }