54 lines
1.5 KiB
Diff
54 lines
1.5 KiB
Diff
|
|
From 8ac0152651725cfa3dd887f9f73e6ff9671ce2dd Mon Sep 17 00:00:00 2001
|
||
|
|
From: Bill Parker <wp02855@gmail.com>
|
||
|
|
Date: Tue, 10 Jul 2018 12:34:00 +1000
|
||
|
|
Subject: [PATCH 2432/3677] check param_template[i].pValue is non NULL
|
||
|
|
|
||
|
|
---
|
||
|
|
bin/pkcs11/pkcs11-keygen.c | 22 ++++++++++++++++++----
|
||
|
|
1 file changed, 18 insertions(+), 4 deletions(-)
|
||
|
|
|
||
|
|
diff --git a/bin/pkcs11/pkcs11-keygen.c b/bin/pkcs11/pkcs11-keygen.c
|
||
|
|
index fe314ab..9631c0e 100644
|
||
|
|
--- a/bin/pkcs11/pkcs11-keygen.c
|
||
|
|
+++ b/bin/pkcs11/pkcs11-keygen.c
|
||
|
|
@@ -657,8 +657,18 @@ main(int argc, char *argv[]) {
|
||
|
|
}
|
||
|
|
|
||
|
|
/* Allocate space for parameter attributes */
|
||
|
|
- for (i = 0; i < param_attrcnt; i++)
|
||
|
|
+ for (i = 0; i < param_attrcnt; i++) {
|
||
|
|
+ param_template[i].pValue = NULL;
|
||
|
|
+ }
|
||
|
|
+
|
||
|
|
+ for (i = 0; i < param_attrcnt; i++) {
|
||
|
|
param_template[i].pValue = malloc(param_template[i].ulValueLen);
|
||
|
|
+ if (param_template[i].pValue == NULL) {
|
||
|
|
+ fprintf(stderr, "malloc failed\n");
|
||
|
|
+ error = 1;
|
||
|
|
+ goto exit_params;
|
||
|
|
+ }
|
||
|
|
+ }
|
||
|
|
|
||
|
|
rv = pkcs_C_GetAttributeValue(hSession, domainparams,
|
||
|
|
dsa_param_template, DSA_PARAM_ATTRS);
|
||
|
|
@@ -713,9 +723,13 @@ main(int argc, char *argv[]) {
|
||
|
|
|
||
|
|
exit_params:
|
||
|
|
/* Free parameter attributes */
|
||
|
|
- if (keyclass == key_dsa || keyclass == key_dh)
|
||
|
|
- for (i = 0; i < param_attrcnt; i++)
|
||
|
|
- free(param_template[i].pValue);
|
||
|
|
+ if (keyclass == key_dsa || keyclass == key_dh) {
|
||
|
|
+ for (i = 0; i < param_attrcnt; i++) {
|
||
|
|
+ if (param_template[i].pValue != NULL) {
|
||
|
|
+ free(param_template[i].pValue);
|
||
|
|
+ }
|
||
|
|
+ }
|
||
|
|
+ }
|
||
|
|
|
||
|
|
exit_domain:
|
||
|
|
/* Destroy domain parameters */
|
||
|
|
--
|
||
|
|
1.8.3.1
|
||
|
|
|