summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Ferir <arnaud.ferir@trusted-logic.com>2011-01-05 09:04:52 +0100
committerNick Pelly <npelly@google.com>2011-01-18 15:28:26 -0800
commit99e7261d709ad32e0203dced9f4a386c5f719adf (patch)
tree0aa0475d8c73d73dbb02835222cecd0ef6b3de17
parentd9d57394761c70786f5058f82e7528bfaf1807a0 (diff)
downloadlibnfc-nxp-99e7261d709ad32e0203dced9f4a386c5f719adf.tar.gz
Fixed parameters checking in LLCP.
Avoid NULL pointer dereferencing in some situations. Change-Id: I020f0a5342acdc49f7f3804e9341ed0fc0f307ee
-rw-r--r--src/phFriNfc_LlcpTransport.c8
-rw-r--r--src/phLibNfc_llcp.c5
2 files changed, 11 insertions, 2 deletions
diff --git a/src/phFriNfc_LlcpTransport.c b/src/phFriNfc_LlcpTransport.c
index 22f1e32..e80357e 100644
--- a/src/phFriNfc_LlcpTransport.c
+++ b/src/phFriNfc_LlcpTransport.c
@@ -826,8 +826,12 @@ NFCSTATUS phFriNfc_LlcpTransport_Connect( phFriNfc_LlcpTransport_Socket_t*
NFCSTATUS status = NFCSTATUS_SUCCESS;
uint8_t i;
- /* Check for NULL pointers */
- if(pLlcpSocket == NULL || pConnect_RspCb == NULL || pContext == NULL)
+ /* Check for NULL pointers */
+ if(pConnect_RspCb == NULL)
+ {
+ status = PHNFCSTVAL(CID_FRI_NFC_LLCP_TRANSPORT, NFCSTATUS_INVALID_PARAMETER);
+ }
+ else if(pLlcpSocket == NULL || pConnect_RspCb == NULL || pContext == NULL)
{
status = PHNFCSTVAL(CID_FRI_NFC_LLCP_TRANSPORT, NFCSTATUS_INVALID_PARAMETER);
/* Call the CB */
diff --git a/src/phLibNfc_llcp.c b/src/phLibNfc_llcp.c
index 2f78ab6..ab518a2 100644
--- a/src/phLibNfc_llcp.c
+++ b/src/phLibNfc_llcp.c
@@ -71,6 +71,11 @@ STATIC NFCSTATUS static_CheckDevice(phLibNfc_Handle hRemoteDevice)
{
phLibNfc_sRemoteDevInformation_t* psRemoteDevInfo = (phLibNfc_sRemoteDevInformation_t*)hRemoteDevice;
+ if (hRemoteDevice == NULL)
+ {
+ return NFCSTATUS_INVALID_PARAMETER;
+ }
+
/* If local device is the Initiator (remote is Target),
* check if connection is correct
*/