[Libreoffice-commits] core.git: vcl/source

Tor Lillqvist tml at collabora.com
Wed Feb 18 06:57:50 PST 2015


 vcl/source/gdi/pdfwriter_impl.cxx |   15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

New commits:
commit 4ece31faef6279cdb0d7eafa26f696e393649fd4
Author: Tor Lillqvist <tml at collabora.com>
Date:   Wed Feb 18 16:31:13 2015 +0200

    tdf#84881: WiP: Handle TimeStampReq::extensions correctly
    
    Also, pass dest as NULL to SEC_ASN1EncodeItem(). Now we can call
    SECITEM_FreeItem(item, PR_TRUE) on its return value.
    
    Change-Id: Ia30b70990971aba15158f97528524d879a04da3c

diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx
index e87aa0a..edd69c9 100644
--- a/vcl/source/gdi/pdfwriter_impl.cxx
+++ b/vcl/source/gdi/pdfwriter_impl.cxx
@@ -6058,7 +6058,7 @@ Extension  ::=  SEQUENCE  {
 
 typedef struct {
     SECItem extnID;
-    bool critical;
+    SECItem critical;
     SECItem extnValue;
 } Extension;
 
@@ -6096,7 +6096,7 @@ typedef struct {
     SECItem reqPolicy;
     SECItem nonce;
     SECItem certReq;
-    SECItem extensions;
+    Extension *extensions;
 } TimeStampReq;
 
 SEC_ASN1_MKSUB(SECOID_AlgorithmIDTemplate)
@@ -6271,7 +6271,6 @@ bool PDFWriterImpl::finalizeSignature()
     HASH_End(hc.get(), digest.data, &digest.len, SHA1_LENGTH);
     hc.clear();
 
-    SECItem dest;
     TimeStampReq src;
 
     unsigned char cOne = 1;
@@ -6302,13 +6301,11 @@ bool PDFWriterImpl::finalizeSignature()
     src.certReq.data = &cFalse;
     src.certReq.len = sizeof(cFalse);
 
-    src.extensions.type = siBuffer;
-    src.extensions.data = NULL;
-    src.extensions.len = 0;
+    src.extensions = NULL;
 
-    SECItem* item = SEC_ASN1EncodeItem(NULL, &dest, &src, TimeStampReq_Template);
-    // SAL_ DEBUG("====> item=" << item << " data=" << (item ? (void*)item->data : nullptr) << " len=" << (item ? item->len : -1));
-    (void)item;// SECITEM_FreeItem(item, PR_TRUE); // crashes for some reason
+    SECItem* item = SEC_ASN1EncodeItem(NULL, NULL, &src, TimeStampReq_Template);
+    SAL_INFO("vcl.pdfwriter", "item=" << item << " data=" << (item ? (void*)item->data : nullptr) << " len=" << (item ? item->len : -1));
+    SECITEM_FreeItem(item, PR_TRUE);
 
     NSSCMSMessage *cms_msg = NSS_CMSMessage_Create(NULL);
     if (!cms_msg)


More information about the Libreoffice-commits mailing list