From 22f4ddfe8596058636bcb58235e8d849d634eaed Mon Sep 17 00:00:00 2001 From: "jinhyuck83.park" Date: Thu, 13 Apr 2017 15:06:58 +0900 Subject: [PATCH] make code more stable by change strcpy to strncpy and prevent memory leak by dereferencing allocated object. Change-Id: Ief21c5a5f9e6f016a9a88948729d636bff3d7650 Signed-off-by: jinhyuck83.park Reviewed-on: https://gerrit.iotivity.org/gerrit/18881 Tested-by: jenkins-iotivity Reviewed-by: Dan Mihai --- resource/src/InProcClientWrapper.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/resource/src/InProcClientWrapper.cpp b/resource/src/InProcClientWrapper.cpp index be36651..f4d5ea8 100644 --- a/resource/src/InProcClientWrapper.cpp +++ b/resource/src/InProcClientWrapper.cpp @@ -1477,7 +1477,9 @@ namespace OC options[i].protocolID = OC_COAP_ID; options[i].optionID = it->getOptionID(); options[i].optionLength = it->getOptionData().length() + 1; - strcpy((char*)options[i].optionData, (it->getOptionData().c_str())); + strncpy((char*)options[i].optionData, it->getOptionData().c_str(), + sizeof(options[i].optionLength) -1 ); + options[i].optionData[sizeof(options[i].optionLength) - 1] = 0; i++; } @@ -1617,6 +1619,7 @@ namespace OC std::lock_guard lock(*cLock); result = OCDoDirectPairing(static_cast(context), peer->getDev(), pmSel, const_cast(pinNumber.c_str()), directPairingCallback); + delete context; } else { -- 2.7.4