You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.3 KiB
52 lines
1.3 KiB
7 years ago
|
diff --git a/lib/freebl/intel-gcm-wrap.c b/lib/freebl/intel-gcm-wrap.c
|
||
|
--- a/lib/freebl/intel-gcm-wrap.c
|
||
|
+++ b/lib/freebl/intel-gcm-wrap.c
|
||
|
@@ -138,16 +138,17 @@ intel_AES_GCM_CreateContext(void *contex
|
||
|
loser:
|
||
|
PORT_Free(gcm);
|
||
|
return NULL;
|
||
|
}
|
||
|
|
||
|
void
|
||
|
intel_AES_GCM_DestroyContext(intel_AES_GCMContext *gcm, PRBool freeit)
|
||
|
{
|
||
|
+ PORT_Memset(gcm, 0, sizeof(intel_AES_GCMContext));
|
||
|
if (freeit) {
|
||
|
PORT_Free(gcm);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
SECStatus
|
||
|
intel_AES_GCM_EncryptUpdate(intel_AES_GCMContext *gcm,
|
||
|
unsigned char *outbuf,
|
||
|
diff --git a/lib/freebl/rijndael.c b/lib/freebl/rijndael.c
|
||
|
--- a/lib/freebl/rijndael.c
|
||
|
+++ b/lib/freebl/rijndael.c
|
||
|
@@ -1027,23 +1027,25 @@ AES_CreateContext(const unsigned char *k
|
||
|
* AES_DestroyContext
|
||
|
*
|
||
|
* Zero an AES cipher context. If freeit is true, also free the pointer
|
||
|
* to the context.
|
||
|
*/
|
||
|
void
|
||
|
AES_DestroyContext(AESContext *cx, PRBool freeit)
|
||
|
{
|
||
|
+ void *mem = cx->mem;
|
||
|
if (cx->worker_cx && cx->destroy) {
|
||
|
(*cx->destroy)(cx->worker_cx, PR_TRUE);
|
||
|
cx->worker_cx = NULL;
|
||
|
cx->destroy = NULL;
|
||
|
}
|
||
|
+ PORT_Memset(cx, 0, sizeof(AESContext));
|
||
|
if (freeit) {
|
||
|
- PORT_Free(cx->mem);
|
||
|
+ PORT_Free(mem);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* AES_Encrypt
|
||
|
*
|
||
|
* Encrypt an arbitrary-length buffer. The output buffer must already be
|
||
|
* allocated to at least inputLen.
|