summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--extra/yassl/include/yassl_error.hpp4
-rw-r--r--extra/yassl/mySTL/stdexcept.hpp2
-rw-r--r--extra/yassl/src/yassl_error.cpp3
-rw-r--r--extra/yassl/src/yassl_int.cpp11
-rw-r--r--extra/yassl/taocrypt/src/integer.cpp5
-rw-r--r--extra/yassl/taocrypt/src/misc.cpp13
6 files changed, 30 insertions, 8 deletions
diff --git a/extra/yassl/include/yassl_error.hpp b/extra/yassl/include/yassl_error.hpp
index 9c12b06e34a..2f35fecb59b 100644
--- a/extra/yassl/include/yassl_error.hpp
+++ b/extra/yassl/include/yassl_error.hpp
@@ -26,7 +26,6 @@
#ifndef yaSSL_ERROR_HPP
#define yaSSL_ERROR_HPP
-#include "stdexcept.hpp"
namespace yaSSL {
@@ -63,7 +62,7 @@ enum { MAX_ERROR_SZ = 80 };
void SetErrorString(YasslError, char*);
-
+/* remove for now, if go back to exceptions use this wrapper
// Base class for all yaSSL exceptions
class Error : public mySTL::runtime_error {
YasslError error_;
@@ -75,6 +74,7 @@ public:
YasslError get_number() const;
Library get_lib() const;
};
+*/
} // naemspace
diff --git a/extra/yassl/mySTL/stdexcept.hpp b/extra/yassl/mySTL/stdexcept.hpp
index b50dd35edae..33ea43bf0e0 100644
--- a/extra/yassl/mySTL/stdexcept.hpp
+++ b/extra/yassl/mySTL/stdexcept.hpp
@@ -46,10 +46,8 @@ public:
// for compiler generated call, never used
static void operator delete(void*) { assert(0); }
private:
-#if defined(__hpux)
// don't allow dynamic creation of exceptions
static void* operator new(size_t);
-#endif
};
diff --git a/extra/yassl/src/yassl_error.cpp b/extra/yassl/src/yassl_error.cpp
index 1973c54d781..72b8e459241 100644
--- a/extra/yassl/src/yassl_error.cpp
+++ b/extra/yassl/src/yassl_error.cpp
@@ -27,10 +27,12 @@
#include "yassl_error.hpp"
#include "error.hpp" // TaoCrypt error numbers
#include "openssl/ssl.h" // SSL_ERROR_WANT_READ
+#include <string.h> // strncpy
namespace yaSSL {
+/* may bring back in future
Error::Error(const char* s, YasslError e, Library l)
: mySTL::runtime_error(s), error_(e), lib_(l)
{
@@ -48,6 +50,7 @@ Library Error::get_lib() const
return lib_;
}
+*/
void SetErrorString(YasslError error, char* buffer)
diff --git a/extra/yassl/src/yassl_int.cpp b/extra/yassl/src/yassl_int.cpp
index a715d32f282..842bcd5fb5d 100644
--- a/extra/yassl/src/yassl_int.cpp
+++ b/extra/yassl/src/yassl_int.cpp
@@ -2106,9 +2106,14 @@ ASN1_STRING* StringHolder::GetString()
extern "C" void yaSSL_CleanUp()
{
TaoCrypt::CleanUp();
- ysDelete(yaSSL::cryptProviderInstance);
- ysDelete(yaSSL::sslFactoryInstance);
- ysDelete(yaSSL::sessionsInstance);
+ yaSSL::ysDelete(yaSSL::cryptProviderInstance);
+ yaSSL::ysDelete(yaSSL::sslFactoryInstance);
+ yaSSL::ysDelete(yaSSL::sessionsInstance);
+
+ // In case user calls more than once, prevent seg fault
+ yaSSL::cryptProviderInstance = 0;
+ yaSSL::sslFactoryInstance = 0;
+ yaSSL::sessionsInstance = 0;
}
diff --git a/extra/yassl/taocrypt/src/integer.cpp b/extra/yassl/taocrypt/src/integer.cpp
index 885ddfbf630..a296e122985 100644
--- a/extra/yassl/taocrypt/src/integer.cpp
+++ b/extra/yassl/taocrypt/src/integer.cpp
@@ -2735,8 +2735,11 @@ void CleanUp()
{
tcDelete(one);
tcDelete(zero);
-}
+ // In case user calls more than once, prevent seg fault
+ one = 0;
+ zero = 0;
+}
Integer::Integer(RandomNumberGenerator& rng, const Integer& min,
const Integer& max)
diff --git a/extra/yassl/taocrypt/src/misc.cpp b/extra/yassl/taocrypt/src/misc.cpp
index 4ef163a7f5d..2869df71c8a 100644
--- a/extra/yassl/taocrypt/src/misc.cpp
+++ b/extra/yassl/taocrypt/src/misc.cpp
@@ -81,6 +81,19 @@ extern "C" {
}
+#if defined(__ICC) || defined(__INTEL_COMPILER)
+
+extern "C" {
+
+ int __cxa_pure_virtual() {
+ assert("Pure virtual method called." == "Aborted");
+ return 0;
+ }
+
+} // extern "C"
+
+#endif
+
#endif // YASSL_PURE_C