diff --git a/interfaces/innerkits/nativetoken/src/nativetoken.c b/interfaces/innerkits/nativetoken/src/nativetoken.c index fd6e7e3403773b609dfa0859958706ccd4a1084b..cf888363a83b0b60c483a39efc2b6853f266c377 100644 --- a/interfaces/innerkits/nativetoken/src/nativetoken.c +++ b/interfaces/innerkits/nativetoken/src/nativetoken.c @@ -327,7 +327,7 @@ static int32_t GetAplLevel(const char *aplStr) static void WriteToFile(const cJSON *root) { - ssize_t strLen; + size_t strLen; ssize_t writtenLen; char *jsonStr = NULL; @@ -347,8 +347,8 @@ static void WriteToFile(const cJSON *root) strLen = strlen(jsonStr); writtenLen = write(fd, (void *)jsonStr, (size_t)strLen); close(fd); - if (writtenLen != strLen) { - AT_LOG_ERROR("[ATLIB-%s]:write failed, writtenLen is %zu.", __func__, writtenLen); + if (writtenLen < 0 || (size_t)writtenLen != strLen) { + AT_LOG_ERROR("[ATLIB-%s]:write failed, writtenLen is %zd.", __func__, writtenLen); break; } } while (0);