diff options
author | Moritz Duge <moritz.duge@allotropia.de> | 2024-05-03 11:35:40 +0200 |
---|---|---|
committer | Thorsten Behrens <thorsten.behrens@allotropia.de> | 2024-05-03 15:39:52 +0200 |
commit | 3bb9b0565abef14575d1075e7d33ffcc19d51bfd (patch) | |
tree | 12e7a5f300d2dd2e0897fdf38076da9f84f9debb /xmlsecurity | |
parent | 510e6224951ef492d8d957a8894044276dd8b9c9 (diff) |
fix crash in CertificateChooser for GPG
mvUserData is still needed to keep it's content from being deleted.
Revert "Drop unused instance variable."
This reverts commit 687ae6ca01177a04f9ea715a1f1cd70f385a0840.
Change-Id: I689cfdaf8d4d62a3b53ff7fb318dc8c70b9e1c2d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167020
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
Tested-by: Jenkins
Diffstat (limited to 'xmlsecurity')
-rw-r--r-- | xmlsecurity/inc/certificatechooser.hxx | 1 | ||||
-rw-r--r-- | xmlsecurity/source/dialogs/certificatechooser.cxx | 3 |
2 files changed, 4 insertions, 0 deletions
diff --git a/xmlsecurity/inc/certificatechooser.hxx b/xmlsecurity/inc/certificatechooser.hxx index 33458c27cd04..494ea40de1e4 100644 --- a/xmlsecurity/inc/certificatechooser.hxx +++ b/xmlsecurity/inc/certificatechooser.hxx @@ -51,6 +51,7 @@ class CertificateChooser final : public weld::GenericDialogController { private: std::vector< css::uno::Reference< css::xml::crypto::XXMLSecurityContext > > mxSecurityContexts; + std::vector<std::shared_ptr<CertificateChooserUserData>> mvUserData; bool mbInitialized; CertificateChooserUserAction const meAction; diff --git a/xmlsecurity/source/dialogs/certificatechooser.cxx b/xmlsecurity/source/dialogs/certificatechooser.cxx index 2bae90cd7d70..c95ad1947d0b 100644 --- a/xmlsecurity/source/dialogs/certificatechooser.cxx +++ b/xmlsecurity/source/dialogs/certificatechooser.cxx @@ -217,6 +217,9 @@ void CertificateChooser::ImplInitialize(bool mbSearch) userData->xSecurityContext = secContext; userData->xSecurityEnvironment = secEnvironment; + // Needed to keep userData alive. (reference to shared_ptr prevents delete) + mvUserData.push_back(userData); + OUString sIssuer = xmlsec::GetContentPart( xCert->getIssuerName(), xCert->getCertificateKind()); OUString sExpDate = utl::GetDateString(xCert->getNotValidAfter()); |