mirror of
https://github.com/openharmony/developtools_syscap_codec.git
synced 2026-08-27 02:11:19 -04:00
@@ -155,11 +155,13 @@ int32_t CheckRpcidFormat(const char *inputFile, char **buffer, uint32_t *len)
|
||||
}
|
||||
if (bufferLen < (2 * sizeof(uint32_t))) { // 2, header of rpcid.sc
|
||||
PRINT_ERR("Parse file failed(format is invalid), input file : %s\n", inputFile);
|
||||
free(contextBuffer);
|
||||
return -1;
|
||||
}
|
||||
rpcidHeader = (RPCIDHead *)contextBuffer;
|
||||
if (rpcidHeader->apiVersionType != 1) {
|
||||
PRINT_ERR("Parse file failed(apiVersionType != 1), input file : %s\n", inputFile);
|
||||
free(contextBuffer);
|
||||
return -1;
|
||||
}
|
||||
sysCaptype = NtohsInter(*(uint16_t *)(rpcidHeader + 1));
|
||||
|
||||
+1
-1
@@ -705,7 +705,6 @@ static int32_t GetSyscapStr(char *input, char const *priSyscapStr, uint32_t* osS
|
||||
return -1;
|
||||
}
|
||||
priSyscapStr = ctx;
|
||||
free(ctx);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -735,6 +734,7 @@ int32_t DecodeStringPCIDToJson(char *input, char *outDirPath)
|
||||
PRINT_ERR("Add os syscap json object failed.\n");
|
||||
goto ADD_JSON_FAILED;
|
||||
}
|
||||
|
||||
if (AddPriSyscapToJsonObj(priSyscapStr, (uint32_t)strlen(priSyscapStr), sysCapObj) != 0) {
|
||||
PRINT_ERR("Add private syscap json object failed.\n");
|
||||
goto ADD_JSON_FAILED;
|
||||
|
||||
+6
-2
@@ -658,7 +658,7 @@ int32_t ComparePriSyscap(char *pcid, char *rpcid, uint32_t pcidLen, uint32_t rpc
|
||||
return prisyscapFlag;
|
||||
}
|
||||
|
||||
int32_t CompoareVersion(uint32_t *pcidOsArray, uint32_t *rpcidOsAarry)
|
||||
static int32_t CompareVersion(uint32_t *pcidOsArray, uint32_t *rpcidOsAarry)
|
||||
{
|
||||
int32_t versionFlag = 0;
|
||||
uint16_t pcidVersion = NtohsInter(((PCIDMain *)pcidOsArray)->apiVersion);
|
||||
@@ -705,10 +705,14 @@ int32_t ComparePcidWithRpcidString(char *pcidFile, char *rpcidFile, uint32_t typ
|
||||
&rpcidPriSyscap, &rpcidPriSyscapLen);
|
||||
if (ret != 0) {
|
||||
PRINT_ERR("Separate syscap from string failed. ret = %d\n", ret);
|
||||
free(pcidContent);
|
||||
free(rpcidContent);
|
||||
free(pcidPriSyscap);
|
||||
free(rpcidPriSyscap);
|
||||
return -1;
|
||||
}
|
||||
|
||||
int32_t versionFlag = CompoareVersion(pcidOsArray, rpcidOsAarry);
|
||||
int32_t versionFlag = CompareVersion(pcidOsArray, rpcidOsAarry);
|
||||
int32_t ossyscapFlag = CompareOsSyscap(pcidOsArray, rpcidOsAarry);
|
||||
int32_t prisyscapFlag = ComparePriSyscap(pcidPriSyscap, rpcidPriSyscap, pcidPriSyscapLen, rpcidPriSyscapLen);
|
||||
if (!versionFlag && !ossyscapFlag && !prisyscapFlag) {
|
||||
|
||||
Reference in New Issue
Block a user