Exit instead of throwing in BERDecoder destructor; remove noexcept() stuff.

This commit is contained in:
Brian Cox 2016-12-03 15:05:50 -08:00
parent 77a8152d71
commit a6612ab3ab
3 changed files with 8 additions and 10 deletions

View File

@ -81,13 +81,17 @@ BERSequenceDecoder::BERSequenceDecoder(BufferedTransformation &inQueue)
definiteLength = BERLengthDecode(inQueue, length); definiteLength = BERLengthDecode(inQueue, length);
} }
BERSequenceDecoder::~BERSequenceDecoder() NOEXCEPT_FALSE BERSequenceDecoder::~BERSequenceDecoder()
{ {
if (!definiteLength) if (!definiteLength)
{ // remove end-of-content octects { // remove end-of-content octects
word16 i; word16 i;
if (!inQueue.GetShort(i) || (i!=0)) if (!inQueue.GetShort(i) || (i!=0))
BERDecodeError(); {
fputs("### Internal Error.\n### Invalid or corrupt key.\n### Exiting...\n\
", stderr);
exit(1);
}
} }
} }

View File

@ -25,7 +25,7 @@ class BERSequenceDecoder : public BufferedTransformation
{ {
public: public:
BERSequenceDecoder(BufferedTransformation &inQueue); BERSequenceDecoder(BufferedTransformation &inQueue);
~BERSequenceDecoder() NOEXCEPT_FALSE; ~BERSequenceDecoder();
void Put(byte) {} void Put(byte) {}
void Put(const byte *, unsigned int) {} void Put(const byte *, unsigned int) {}

View File

@ -10,12 +10,6 @@
#include <exception> #include <exception>
#include <string> #include <string>
#if __cplusplus >= 201103L
# define NOEXCEPT_FALSE noexcept(false)
#else
# define NOEXCEPT_FALSE
#endif
/// base class for all exceptions thrown by Crypto++ /// base class for all exceptions thrown by Crypto++
class CryptlibException : public std::exception class CryptlibException : public std::exception
{ {
@ -204,7 +198,7 @@ class BufferedTransformation
{ {
public: public:
/// ///
virtual ~BufferedTransformation() NOEXCEPT_FALSE {} virtual ~BufferedTransformation() {}
//@Man: INPUT //@Man: INPUT
//@{ //@{