9d5f5058 | 2015-09-06 23:11:58 | Timothy Pearson |
Fix issues with X509 certificate list usage |
||
M tdecore/tdehw/tdecryptographiccarddevice.cpp M tdecore/tdehw/tdecryptographiccarddevice.h |
||
diff --git a/tdecore/tdehw/tdecryptographiccarddevice.cpp b/tdecore/tdehw/tdecryptographiccarddevice.cpp index 5686fa8..8cf8092 100644 --- a/tdecore/tdehw/tdecryptographiccarddevice.cpp +++ b/tdecore/tdehw/tdecryptographiccarddevice.cpp @@ -16,6 +16,8 @@ Boston, MA 02110-1301, USA. */ +#define _TDECRYPTOGRAPHICCARDDEVICE_INTERNAL 1 + #include "tdecryptographiccarddevice_private.h" #include "tdecryptographiccarddevice.h" @@ -343,9 +345,11 @@ } void CryptoCardDeviceWatcher::deleteAllCertificatesFromCache() { - X509CertificatePtrListIterator it(cardDevice->m_cardCertificates); X509 *x509_cert; - while ((x509_cert = it.current()) != 0) { + + X509CertificatePtrListIterator it; + for (it = cardDevice->m_cardCertificates.begin(); it != cardDevice->m_cardCertificates.end(); ++it) { + x509_cert = *it; X509_free(x509_cert); } @@ -356,7 +360,6 @@ m_watcherThread(NULL), m_watcherObject(NULL), m_cardPresent(false) { - m_cardCertificates.setAutoDelete(false); } TDECryptographicCardDevice::~TDECryptographicCardDevice() { diff --git a/tdecore/tdehw/tdecryptographiccarddevice.h b/tdecore/tdehw/tdecryptographiccarddevice.h index 2ffdc1a..299ad07 100644 --- a/tdecore/tdehw/tdecryptographiccarddevice.h +++ b/tdecore/tdehw/tdecryptographiccarddevice.h @@ -22,12 +22,19 @@ #include "tdegenericdevice.h" -class x509_st; +#ifndef _TDECRYPTOGRAPHICCARDDEVICE_INTERNAL + #ifdef KSSL_HAVE_SSL + typedef struct x509_st X509; + #else + class X509; + #endif +#endif + class TQEventLoopThread; class CryptoCardDeviceWatcher; -typedef TQPtrList<x509_st> X509CertificatePtrList; -typedef TQPtrListIterator<x509_st> X509CertificatePtrListIterator; +typedef TQValueList<X509*> X509CertificatePtrList; +typedef TQValueListIterator<X509*> X509CertificatePtrListIterator; class TDECORE_EXPORT TDECryptographicCardDevice : public TDEGenericDevice { |