summaryrefslogtreecommitdiff
path: root/external/libxmlsec/xmlsec1-nss-ecdsa-memset.patch.1
blob: 2cefbe0f1bd891c32cd910f0f81d404fe613a86b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
From 2ef2b9f34e2eebcdb4116e55e1e3b8034a1961c8 Mon Sep 17 00:00:00 2001
From: Miklos Vajna <vmiklos@collabora.co.uk>
Date: Mon, 6 Mar 2017 22:34:46 +0100
Subject: [PATCH] nss: fix assert when building against debug nss (#91)

Due to reading uninitialized memory. gdb says:

    Assertion failure: dest == NULL || dest->data == NULL, at secasn1e.c:1483
    Program received signal SIGABRT, Aborted.
    0x00007ffff74748d7 in raise () from /lib64/libc.so.6
    (gdb) up
    #1  0x00007ffff7475caa in abort () from /lib64/libc.so.6
    (gdb)
    #2  0x00007fffe57f96ae in PR_Assert (s=0x7fffe1cbf298 "dest == NULL || dest->data == NULL", file=0x7fffe1cbef60 "secasn1e.c", ln=1483) at ../../../../pr/src/io/prlog.c:553
    553         abort();
    (gdb)
    #3  0x00007fffe1cb1941 in SEC_ASN1EncodeItem_Util (poolp=0x0, dest=0x7fffffff95f0, src=0x7fffffff9530, theTemplate=0x7fffe55ae180 <DSA_SignatureTemplate>) at secasn1e.c:1483
    1483        PORT_Assert(dest == NULL || dest->data == NULL);
---
 src/nss/signatures.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/nss/signatures.c b/src/nss/signatures.c
index a8fec2c..b7a292e 100644
--- a/src/nss/signatures.c
+++ b/src/nss/signatures.c
@@ -354,6 +354,7 @@ xmlSecNssSignatureVerify(xmlSecTransformPtr transform,
         SECItem   signatureDer;
         SECStatus statusDer;
 
+        memset(&signatureDer, 0, sizeof(signatureDer));
         statusDer = DSAU_EncodeDerSigWithLen(&signatureDer, &signature, signature.len);
         if(statusDer != SECSuccess) {
             xmlSecError(XMLSEC_ERRORS_HERE,
-- 
2.10.2