From a799ea01410a8eaeb47804be44928e966634636f Mon Sep 17 00:00:00 2001
From: Oleksii Beketov
Date: Thu, 13 Feb 2020 13:53:23 +0200
Subject: [PATCH] [CONPRO-1564] Doxm deadlock
Deadlock in case of not supported oxm method fixed
https://github.sec.samsung.net/RS7-IOTIVITY/IoTivity/pull/665
(cherry-picked from 2ce7a0c66285f62eeac4db9260cea0f077adf2ad)
Change-Id: I280d323cd27eccfe233e0ea91efc2a4cb393591e
Signed-off-by: Oleksii Beketov
Signed-off-by: DoHyun Pyun
---
resource/csdk/security/src/doxmresource.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/resource/csdk/security/src/doxmresource.c b/resource/csdk/security/src/doxmresource.c
index 98c8405..91f104d 100644
--- a/resource/csdk/security/src/doxmresource.c
+++ b/resource/csdk/security/src/doxmresource.c
@@ -1449,6 +1449,10 @@ static OCEntityHandlerResult HandleDoxmPostRequest(OCEntityHandlerRequest * ehRe
if (false == ValidateOxmsel(gDoxm->oxm, gDoxm->oxmLen, &newDoxm->oxmSel))
{
OIC_LOG(ERROR, TAG, "Not acceptable request because oxmsel does not support on Server");
+ if (NULL != g_mutexDoxm)
+ {
+ oc_mutex_unlock(g_mutexDoxm);
+ }
ehRet = OC_EH_NOT_ACCEPTABLE;
goto exit;
}
@@ -1546,6 +1550,10 @@ static OCEntityHandlerResult HandleDoxmPostRequest(OCEntityHandlerRequest * ehRe
if (false == ValidateOxmsel(gDoxm->oxm, gDoxm->oxmLen, &newDoxm->oxmSel))
{
OIC_LOG(ERROR, TAG, "Not acceptable request because oxmsel does not support on Server");
+ if (NULL != g_mutexDoxm)
+ {
+ oc_mutex_unlock(g_mutexDoxm);
+ }
ehRet = OC_EH_NOT_ACCEPTABLE;
goto exit;
}
--
2.7.4