card-authentic: Avoid potential memory leaks
This commit is contained in:
parent
1b32bfe4e5
commit
070a37cebd
|
@ -1709,22 +1709,22 @@ authentic_manage_sdo_encode_prvkey(struct sc_card *card, struct sc_pkcs15_prkey
|
|||
rsa = prvkey->u.rsa;
|
||||
/* Encode private RSA key part */
|
||||
rv = authentic_update_blob(ctx, AUTHENTIC_TAG_RSA_PRIVATE_P, rsa.p.data, rsa.p.len, &blob, &blob_len);
|
||||
LOG_TEST_RET(ctx, rv, "SDO RSA P encode error");
|
||||
LOG_TEST_GOTO_ERR(ctx, rv, "SDO RSA P encode error");
|
||||
|
||||
rv = authentic_update_blob(ctx, AUTHENTIC_TAG_RSA_PRIVATE_Q, rsa.q.data, rsa.q.len, &blob, &blob_len);
|
||||
LOG_TEST_RET(ctx, rv, "SDO RSA Q encode error");
|
||||
LOG_TEST_GOTO_ERR(ctx, rv, "SDO RSA Q encode error");
|
||||
|
||||
rv = authentic_update_blob(ctx, AUTHENTIC_TAG_RSA_PRIVATE_PQ, rsa.iqmp.data, rsa.iqmp.len, &blob, &blob_len);
|
||||
LOG_TEST_RET(ctx, rv, "SDO RSA PQ encode error");
|
||||
LOG_TEST_GOTO_ERR(ctx, rv, "SDO RSA PQ encode error");
|
||||
|
||||
rv = authentic_update_blob(ctx, AUTHENTIC_TAG_RSA_PRIVATE_DP1, rsa.dmp1.data, rsa.dmp1.len, &blob, &blob_len);
|
||||
LOG_TEST_RET(ctx, rv, "SDO RSA DP1 encode error");
|
||||
LOG_TEST_GOTO_ERR(ctx, rv, "SDO RSA DP1 encode error");
|
||||
|
||||
rv = authentic_update_blob(ctx, AUTHENTIC_TAG_RSA_PRIVATE_DQ1, rsa.dmq1.data, rsa.dmq1.len, &blob, &blob_len);
|
||||
LOG_TEST_RET(ctx, rv, "SDO RSA DQ1 encode error");
|
||||
LOG_TEST_GOTO_ERR(ctx, rv, "SDO RSA DQ1 encode error");
|
||||
|
||||
rv = authentic_update_blob(ctx, AUTHENTIC_TAG_RSA_PRIVATE, blob, blob_len, &blob01, &blob01_len);
|
||||
LOG_TEST_RET(ctx, rv, "SDO RSA Private encode error");
|
||||
LOG_TEST_GOTO_ERR(ctx, rv, "SDO RSA Private encode error");
|
||||
|
||||
free (blob);
|
||||
blob = NULL;
|
||||
|
@ -1735,24 +1735,27 @@ authentic_manage_sdo_encode_prvkey(struct sc_card *card, struct sc_pkcs15_prkey
|
|||
"modulus.len:%"SC_FORMAT_LEN_SIZE_T"u blob_len:%"SC_FORMAT_LEN_SIZE_T"u",
|
||||
rsa.modulus.len, blob_len);
|
||||
rv = authentic_update_blob(ctx, AUTHENTIC_TAG_RSA_PUBLIC_MODULUS, rsa.modulus.data, rsa.modulus.len, &blob, &blob_len);
|
||||
LOG_TEST_RET(ctx, rv, "SDO RSA Modulus encode error");
|
||||
LOG_TEST_GOTO_ERR(ctx, rv, "SDO RSA Modulus encode error");
|
||||
|
||||
sc_log(ctx,
|
||||
"exponent.len:%"SC_FORMAT_LEN_SIZE_T"u blob_len:%"SC_FORMAT_LEN_SIZE_T"u",
|
||||
rsa.exponent.len, blob_len);
|
||||
rv = authentic_update_blob(ctx, AUTHENTIC_TAG_RSA_PUBLIC_EXPONENT, rsa.exponent.data, rsa.exponent.len, &blob, &blob_len);
|
||||
LOG_TEST_RET(ctx, rv, "SDO RSA Exponent encode error");
|
||||
LOG_TEST_GOTO_ERR(ctx, rv, "SDO RSA Exponent encode error");
|
||||
|
||||
rv = authentic_update_blob(ctx, AUTHENTIC_TAG_RSA_PUBLIC, blob, blob_len, &blob01, &blob01_len);
|
||||
LOG_TEST_RET(ctx, rv, "SDO RSA Private encode error");
|
||||
LOG_TEST_GOTO_ERR(ctx, rv, "SDO RSA Private encode error");
|
||||
|
||||
free (blob);
|
||||
blob = NULL;
|
||||
blob_len = 0;
|
||||
|
||||
rv = authentic_update_blob(ctx, AUTHENTIC_TAG_RSA, blob01, blob01_len, out, out_len);
|
||||
LOG_TEST_RET(ctx, rv, "SDO RSA encode error");
|
||||
LOG_TEST_GOTO_ERR(ctx, rv, "SDO RSA encode error");
|
||||
|
||||
err:
|
||||
free(blob01);
|
||||
|
||||
free(blob);
|
||||
LOG_FUNC_RETURN(ctx, rv);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue