mirror of
https://github.com/openharmony/developtools_syscap_codec.git
synced 2026-08-27 02:11:19 -04:00
@@ -40,6 +40,7 @@ typedef struct RequiredProductCompatibilityIDHead {
|
||||
|
||||
void FreeContextBuffer(char *contextBuffer);
|
||||
int32_t GetFileContext(const char *inputFile, char **contextBufPtr, uint32_t *bufferLen);
|
||||
int32_t CheckFileAndGetFileContext(const char *inputFile, char **contextBufPtr, uint32_t *bufferLen);
|
||||
int32_t ConvertedContextSaveAsFile(char *outDirPath, const char *filename, char *convertedBuffer, size_t contextBufLen);
|
||||
int32_t CheckRpcidFormat(const char *inputFile, char **buffer, uint32_t *len);
|
||||
cJSON *CreateWholeSyscapJsonObj(void);
|
||||
|
||||
@@ -625,6 +625,12 @@ static int32_t ComparePcidWithPriSyscap(struct PcidPriSyscapInfo pcidPriSyscapIn
|
||||
free(temp);
|
||||
return -1;
|
||||
}
|
||||
if (pcidPriSyscapInfo.ossyscapFlag + prisyscapFlag >= MAX_MISS_SYSCAP) {
|
||||
FreeCompareError(result);
|
||||
PRINT_ERR("array index out of bounds.\n");
|
||||
free(temp);
|
||||
return -1;
|
||||
}
|
||||
result->syscap[pcidPriSyscapInfo.ossyscapFlag + prisyscapFlag] = temp;
|
||||
++prisyscapFlag;
|
||||
}
|
||||
|
||||
@@ -92,6 +92,19 @@ int32_t GetFileContext(const char *inputFile, char **contextBufPtr, uint32_t *bu
|
||||
return 0;
|
||||
}
|
||||
|
||||
int32_t CheckFileAndGetFileContext(const char *inputFile, char **contextBufPtr, uint32_t *bufferLen)
|
||||
{
|
||||
if (inputFile == NULL) {
|
||||
PRINT_ERR("input file is NULL.\n");
|
||||
return -1;
|
||||
}
|
||||
uint32_t ret = GetFileContext(inputFile, contextBufPtr, bufferLen);
|
||||
if (ret != 0) {
|
||||
PRINT_ERR("GetFileContext failed, input file : %s\n", inputFile);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
int32_t ConvertedContextSaveAsFile(char *outDirPath, const char *filename, char *convertedBuffer, size_t contextBufLen)
|
||||
{
|
||||
int32_t ret;
|
||||
|
||||
+10
-8
@@ -249,11 +249,10 @@ int32_t CreatePCID(char *inputFile, char *outDirPath)
|
||||
uint32_t privateCapSize, osCapSize;
|
||||
uint32_t contextBufLen;
|
||||
char *contextBuffer = NULL;
|
||||
cJSON *allOsSyscapObj = CreateWholeSyscapJsonObj();
|
||||
|
||||
int32_t ret = GetFileContext(inputFile, &contextBuffer, (uint32_t *)&contextBufLen);
|
||||
cJSON *allOsSyscapObj = CreateWholeSyscapJsonObj();
|
||||
int32_t ret = CheckFileAndGetFileContext(inputFile, &contextBuffer, (uint32_t *)&contextBufLen);
|
||||
if (ret != 0) {
|
||||
PRINT_ERR("GetFileContext failed, input file : %s\n", inputFile);
|
||||
return FreeAfterCreatePCID(NULL, allOsSyscapObj, contextBuffer, 0, -1);
|
||||
}
|
||||
|
||||
@@ -481,10 +480,9 @@ int32_t DecodePCID(char *inputFile, char *outDirPath)
|
||||
freePcidJsonInfo.jsonRootObj = NULL;
|
||||
freePcidJsonInfo.sysCapObj = NULL;
|
||||
freePcidJsonInfo.flag = 0;
|
||||
|
||||
ret = GetFileContext(inputFile, &freePcidJsonInfo.contextBuffer, (uint32_t *)&contextBufLen);
|
||||
|
||||
ret = CheckFileAndGetFileContext(inputFile, &freePcidJsonInfo.contextBuffer, (uint32_t *)&contextBufLen);
|
||||
if (ret != 0) {
|
||||
PRINT_ERR("GetFileContext failed, input file : %s\n", inputFile);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -693,6 +691,10 @@ static int32_t AddPriSyscapToJsonObj(char *priSyscapString, uint32_t priSyscapSt
|
||||
|
||||
static int32_t GetSyscapStr(char *input, char const *priSyscapStr, uint32_t* osSyscap, uint32_t *pcidHeader)
|
||||
{
|
||||
if (input == NULL) {
|
||||
PRINT_ERR("inputFile is null.\n");
|
||||
return -1;
|
||||
}
|
||||
char *ctx = NULL;
|
||||
uint32_t fileContextLen;
|
||||
if (GetFileContext(input, &ctx, (uint32_t *)&fileContextLen) != 0) {
|
||||
@@ -715,6 +717,7 @@ int32_t DecodeStringPCIDToJson(char *input, char *outDirPath)
|
||||
uint32_t pcidHeader[PCID_HEADER];
|
||||
char *priSyscapStr = NULL;
|
||||
char *jsonBuffer = NULL;
|
||||
|
||||
ret = GetSyscapStr(input, priSyscapStr, osSyscap, pcidHeader);
|
||||
if (ret == -1) {
|
||||
return ret;
|
||||
@@ -872,9 +875,8 @@ int32_t EncodePcidscToString(char *inputFile, char *outDirPath)
|
||||
freePcidInfo.outDirPathFinal = outDirPath;
|
||||
PCIDMain *pcidMain = NULL;
|
||||
|
||||
ret = GetFileContext(inputFile, &freePcidInfo.contextBuffer, (uint32_t *)&bufferLen);
|
||||
ret = CheckFileAndGetFileContext(inputFile, &freePcidInfo.contextBuffer, (uint32_t *)&bufferLen);
|
||||
if (ret != 0) {
|
||||
PRINT_ERR("Get pcid file failed, pcid file path: %s\n", inputFile);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
+16
-2
@@ -150,8 +150,7 @@ int32_t RPCIDEncode(char *inputFile, char *outputPath)
|
||||
gJsonObjectSysCap.cjsonObjectRoot = NULL;
|
||||
gJsonObjectSysCap.sysCapPtr = NULL;
|
||||
|
||||
if (GetFileContext(inputFile, &contextBuffer, &bufferLen) != 0) {
|
||||
PRINT_ERR("GetFileContext failed, input file : %s\n", inputFile);
|
||||
if (CheckFileAndGetFileContext(inputFile, &contextBuffer, &bufferLen) != 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -262,6 +261,11 @@ int32_t RPCIDDecode(char *inputFile, char *outputPath)
|
||||
char *convertedBuffer = NULL;
|
||||
uint32_t bufferLen;
|
||||
|
||||
if (inputFile == NULL) {
|
||||
PRINT_ERR("inputFile is null.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
// check rpcid.sc
|
||||
if (CheckRpcidFormat(inputFile, &contextBuffer, &bufferLen)) {
|
||||
PRINT_ERR("Check rpcid.sc format failed. Input failed: %s\n", inputFile);
|
||||
@@ -480,6 +484,11 @@ int32_t EncodeRpcidscToString(char *inputFile, char *outDirPath)
|
||||
freeAfterEncodeRpcidscInfo.type = 0;
|
||||
freeAfterEncodeRpcidscInfo.flag = 0;
|
||||
|
||||
if (inputFile == NULL) {
|
||||
PRINT_ERR("inputFile is null.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
// check rpcid.sc
|
||||
if (CheckRpcidFormat(inputFile, &freeAfterEncodeRpcidscInfo.contextBuffer, &bufferLen) != 0) {
|
||||
PRINT_ERR("Check rpcid.sc format failed. Input file: %s\n", inputFile);
|
||||
@@ -699,6 +708,11 @@ int32_t ComparePcidWithRpcidString(char *pcidFile, char *rpcidFile, uint32_t typ
|
||||
uint32_t pcidOsArray[PCID_OUT_BUFFER] = {0};
|
||||
uint32_t rpcidOsAarry[PCID_OUT_BUFFER] = {0};
|
||||
|
||||
if (pcidFile == NULL || rpcidFile == NULL) {
|
||||
PRINT_ERR("pcidFile or rpcidFile is null.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (type == TYPE_FILE) {
|
||||
if (GetFileContext(pcidFile, &pcidContent, &pcidContentLen)) {
|
||||
PRINT_ERR("Get pcid file context failed, input file : %s\n", pcidFile);
|
||||
|
||||
Reference in New Issue
Block a user