From e928e0f6e7196fdcefec5753a8fae7320109f503 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=88=91=E6=98=AF=E4=B8=80=E5=8F=AA=E5=B0=8F=E5=B0=8F?= =?UTF-8?q?=E9=B8=9F?= <8063782+i-am-a-little-bird@user.noreply.gitee.com> Date: Wed, 17 Mar 2021 15:19:06 +0800 Subject: [PATCH] =?UTF-8?q?DecryptMessage=E6=8E=A5=E5=8F=A3=E4=B8=AD?= =?UTF-8?q?=E8=B0=83=E7=94=A8cJSON=5FParse(data)=E7=9A=84=E5=85=A5?= =?UTF-8?q?=E5=8F=82=E5=8F=AF=E8=83=BD=E9=9D=9E=E5=AD=97=E7=AC=A6=E4=B8=B2?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E4=BF=9D=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- authmanager/source/wifi_auth_manager.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/authmanager/source/wifi_auth_manager.c b/authmanager/source/wifi_auth_manager.c index e445e9c..7893a6c 100644 --- a/authmanager/source/wifi_auth_manager.c +++ b/authmanager/source/wifi_auth_manager.c @@ -386,13 +386,34 @@ static int GetKeyIndex(const char *in, unsigned int inOffset, unsigned int index return val; } +static cJSON *DecryptPlainMessage(const char *data, int dataLen) +{ + unsigned int bufLen = dataLen + 1; + char *buf = malloc(bufLen); + if (buf == NULL) { + return NULL; + } + if (memset_s(buf, bufLen, 0, bufLen) != EOK) { + free(buf); + return NULL; + } + if (memcpy_s(buf, bufLen, data, dataLen) != EOK) { + free(buf); + return NULL; + } + + cJSON *retJson = cJSON_Parse(buf); + free(buf); + return retJson; +} + static cJSON *DecryptMessage(int module, const char *data, int dataLen) { if (data == NULL) { return NULL; } if (!ModuleUseCipherText(module)) { - return cJSON_Parse(data); + return DecryptPlainMessage(data, dataLen); } if (dataLen < MESSAGE_ENCRYPT_OVER_HEAD_LEN) {