!111 EncodePrivateSyscap 函数输入为空指针,应该返回 true。

Merge pull request !111 from chenyude/interface
This commit is contained in:
openharmony_ci
2022-08-15 09:24:53 +00:00
committed by Gitee
3 changed files with 19 additions and 15 deletions
+11 -10
View File
@@ -14,6 +14,7 @@
*/
#include <errno.h>
#include <stdbool.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
@@ -160,20 +161,19 @@ bool EncodePrivateSyscap(char **output, int *outputLen)
return false;
}
*outputLen = bufferLen - PCID_MAIN_BYTES - 1;
if (*outputLen == 0) {
*output = outputStr;
return true;
}
outputStr = (char *)malloc(*outputLen);
if (outputStr == NULL) {
PRINT_ERR("malloc buffer failed, size = %d, errno = %d\n", *outputLen, errno);
int priLen = bufferLen - PCID_MAIN_BYTES - 1;
if (priLen <= 0) {
*outputLen = 0;
return false;
}
outputStr = (char *)calloc(priLen, sizeof(char));
if (outputStr == NULL) {
PRINT_ERR("malloc buffer failed, size = %d, errno = %d\n", priLen, errno);
*outputLen = 0;
return false;
}
(void)memset_s(outputStr, *outputLen, 0, *outputLen);
ret = strncpy_s(outputStr, *outputLen, contextBuffer + PCID_MAIN_BYTES, *outputLen - 1);
ret = strncpy_s(outputStr, priLen, contextBuffer + PCID_MAIN_BYTES, priLen - 1);
if (ret != 0) {
PRINT_ERR("strcpy_s failed.");
FreeContextBuffer(contextBuffer);
@@ -183,6 +183,7 @@ bool EncodePrivateSyscap(char **output, int *outputLen)
}
FreeContextBuffer(contextBuffer);
*outputLen = strlen(outputStr);
*output = outputStr;
return true;
}
+2 -2
View File
@@ -275,8 +275,8 @@ int32_t CreatePCID(char *inputFile, char *outDirPath)
for (i = 0; i < privateCapSize; i++) {
jsonArrayItem = cJSON_GetArrayItem(jsonPriSyscapObj, i);
priSyscapStr = strchr(jsonArrayItem->valuestring, '.') + 1;
nRet = strcat_s(priSyscapHead, PRIVATE_SYSCAP_SIZE - 1, priSyscapStr);
nRet += strcat_s(priSyscapHead, PRIVATE_SYSCAP_SIZE - 1, ",");
nRet = strcat_s(priSyscapHead, allPriSyscapStrLen + 1, priSyscapStr);
nRet += strcat_s(priSyscapHead, allPriSyscapStrLen + 1, ",");
if (nRet != EOK) {
PRINT_ERR("strcat_s \"pri\" string is failed\n");
ret = -1;
+6 -3
View File
@@ -49,6 +49,9 @@ HWTEST_F(SyscapCodecTest, EncodePrivateSyscap, TestSize.Level1)
char *charPriInput = nullptr;
int priOutLen;
EXPECT_TRUE(EncodePrivateSyscap(&charPriInput, &priOutLen));
// Currently, private syscap is null.
EXPECT_EQ(*charPriInput, '\0');
EXPECT_EQ(priOutLen, 0);
free(charPriInput);
}
@@ -74,7 +77,7 @@ HWTEST_F(SyscapCodecTest, DecodeOsSyscap, TestSize.Level1)
/*
* @tc.name: DecodePrivateSyscap
* @tc.desc: Check the PrivateSyscap Decoding.
* @tc.desc: Check the null PrivateSyscap Decoding.
* @tc.type: FUNC
*/
HWTEST_F(SyscapCodecTest, DecodePrivateSyscap, TestSize.Level1)
@@ -134,8 +137,8 @@ HWTEST_F(SyscapCodecTest, ComparePcidString, TestSize.Level1)
const char rpcidString[] = "33588992,1766370052,65536,276824064,0,0,0,0,0,0,"\
"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"\
"SystemCapability.vendor.xxxxx1,SystemCapability.device.xxxxx2";
const char expect[][256] = {"SystemCapability.Graphic.Wms",
"SystemCapability.HiviewDFX.HiLog",
const char expect[][256] = {"SystemCapability.Graphic.UI",
"SystemCapability.HiviewDFX.HiDumper",
"SystemCapability.vendor.xxxxx1",
"SystemCapability.device.xxxxx2"};
int32_t ret = ComparePcidString(pcidString, rpcidString, &result);