static int _get_random(int length, unsigned char **random)
{
FILE *f;
+ int ret = -1;
/* read random file */
if ((f = fopen(RANDOM_FILE, "r")) != NULL) {
- if (fread(*random, 1, length, f) != length)
+ ret = fread(*random, 1, length, f);
+ if (fclose(f) != 0 || ret != length)
return CKMC_ERROR_UNKNOWN;
}
return CKMC_ERROR_NONE;
return ret;
}
+ if (!mkey_buffer)
+ return CKMC_ERROR_UNKNOWN;
+
_INFO("before mkey_buffer->size=[%d]", mkey_buffer->size);
*mkey_len = mkey_buffer->size;
*mkey = (unsigned char *)malloc((*mkey_len)+1);
_INFO("before _get_random");
ret = _get_random(MKEY_LEN, &random);
- if (CKMC_ERROR_NONE != ret)
+ if (CKMC_ERROR_NONE != ret) {
+ if (random)
+ free(random);
return CKMC_ERROR_UNKNOWN;
+ }
policy.password = "password";
policy.extractable = true;
ckmc_raw_buffer_s *dek_buffer = NULL;
char alias[128] = {0,};
- sprintf(alias, "%s%s", ACCOUNT_MANAGER_DEK_ALIAS_PFX, pkg_id);
+ snprintf(alias, sizeof(alias), "%s%s", ACCOUNT_MANAGER_DEK_ALIAS_PFX, pkg_id);
ret = ckmc_get_data(alias, password, &dek_buffer);
if (CKMC_ERROR_DB_ALIAS_UNKNOWN == ret) {
_INFO("start _create_app_dek");
- sprintf(alias, "%s%s", ACCOUNT_MANAGER_DEK_ALIAS_PFX, pkg_id);
+ snprintf(alias, sizeof(alias), "%s%s", ACCOUNT_MANAGER_DEK_ALIAS_PFX, pkg_id);
random = (unsigned char *)malloc(DEK_LEN);
if (random == NULL) {
}
ret = _get_random(DEK_LEN, &random);
- if (CKMC_ERROR_NONE != ret)
+ if (CKMC_ERROR_NONE != ret) {
+ if (random)
+ free(random);
return CKMC_ERROR_UNKNOWN;
+ }
policy.password = mkey;
policy.extractable = true;
ret = _create_app_mkey(&account_mkey, &mkey_len);
if (ret != CKMC_ERROR_NONE) {
_ERR("_create_app_mkey failed ret=[%d]", ret);
+ if (account_mkey)
+ free(account_mkey);
return ret;
}
}
return ret;
}
- sprintf(alias, "%s%s", ACCOUNT_MANAGER_DEK_ALIAS_PFX, pkg_id);
+ snprintf(alias, sizeof(alias), "%s%s", ACCOUNT_MANAGER_DEK_ALIAS_PFX, pkg_id);
ret = ckmc_remove_alias(alias);
if(CKMC_ERROR_NONE != ret) {
return ret;