aboutsummaryrefslogtreecommitdiff
path: root/libstb/secvar/test/secvar-test-edk2-compat.c
diff options
context:
space:
mode:
Diffstat (limited to 'libstb/secvar/test/secvar-test-edk2-compat.c')
-rw-r--r--libstb/secvar/test/secvar-test-edk2-compat.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/libstb/secvar/test/secvar-test-edk2-compat.c b/libstb/secvar/test/secvar-test-edk2-compat.c
index 4952a4b..d715b17 100644
--- a/libstb/secvar/test/secvar-test-edk2-compat.c
+++ b/libstb/secvar/test/secvar-test-edk2-compat.c
@@ -14,6 +14,7 @@
#include "./data/malformedkek.h"
#include "./data/trimmedKEK.h"
#include "./data/KEKeslcorrupt.h"
+#include "./data/KEKpkcs7corrupt.h"
#include "./data/db.h"
#include "./data/dbsigneddata.h"
#include "./data/OldTSKEK.h"
@@ -289,6 +290,20 @@ int run_test()
ASSERT(NULL != tmp);
ASSERT(0 == tmp->data_size);
+ /* KEK with corrupted pkcs7, used to leak memory */
+ printf("KEK with corrupt PKCS#7 message\n");
+ tmp = new_secvar("KEK", 4, KEKpkcs7corrupt_auth, KEKpkcs7corrupt_auth_len, 0);
+ ASSERT(0 == edk2_compat_validate(tmp));
+ list_add_tail(&update_bank, &tmp->link);
+ ASSERT(1 == list_length(&update_bank));
+
+ rc = edk2_compat_process(&variable_bank, &update_bank);
+ ASSERT(OPAL_PARAMETER == rc);
+ ASSERT(5 == list_length(&variable_bank));
+ ASSERT(0 == list_length(&update_bank));
+ tmp = find_secvar("KEK", 4, &variable_bank);
+ ASSERT(NULL != tmp);
+ ASSERT(0 == tmp->data_size);
/* Add valid KEK, .process(), succeeds. */
printf("Add KEK");