summaryrefslogtreecommitdiff
path: root/extra/yassl/taocrypt/src/integer.cpp
diff options
context:
space:
mode:
authorHarin Vadodaria <harin.vadodaria@oracle.com>2014-08-23 08:59:03 +0530
committerHarin Vadodaria <harin.vadodaria@oracle.com>2014-08-23 08:59:03 +0530
commitb9f2b1c1354342424f26c276c6e1e9556fa7576a (patch)
tree7e692646b16ed1d7255c950ef60f3400cf29cb9a /extra/yassl/taocrypt/src/integer.cpp
parentab727cec049d20a86e1ca8ab2860d73dc476b73a (diff)
downloadmariadb-git-b9f2b1c1354342424f26c276c6e1e9556fa7576a.tar.gz
Bug#19370676 : YASSL PRE-AUTH BUFFER OVERFLOW WHEN CLIENT
LIES ABOUT SUITE_LEN_ and Bug#19355577 : YASSL PRE-AUTH BUFFER OVERFLOW WHEN CLIENT LIES ABOUT COMP_LEN_ Description : Updating yaSSL to version 2.3.4.
Diffstat (limited to 'extra/yassl/taocrypt/src/integer.cpp')
-rw-r--r--extra/yassl/taocrypt/src/integer.cpp31
1 files changed, 12 insertions, 19 deletions
diff --git a/extra/yassl/taocrypt/src/integer.cpp b/extra/yassl/taocrypt/src/integer.cpp
index c981b1bf786..2d85ee01a3f 100644
--- a/extra/yassl/taocrypt/src/integer.cpp
+++ b/extra/yassl/taocrypt/src/integer.cpp
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
+ Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -56,9 +56,8 @@
#endif
#elif defined(_MSC_VER) && defined(_M_IX86)
/* #pragma message("You do not seem to have the Visual C++ Processor Pack ")
- #pragma message("installed, so use of SSE2 intrinsics will be disabled.")
-*/
#pragma message("installed, so use of SSE2 intrinsics will be disabled.")
+*/
#elif defined(__GNUC__) && defined(__i386__)
/* #warning You do not have GCC 3.3 or later, or did not specify the -msse2 \
compiler option. Use of SSE2 intrinsics will be disabled.
@@ -282,7 +281,12 @@ DWord() {}
word GetHighHalfAsBorrow() const {return 0-halfs_.high;}
private:
- struct dword_struct
+ union
+ {
+ #ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE
+ dword whole_;
+ #endif
+ struct
{
#ifdef LITTLE_ENDIAN_ORDER
word low;
@@ -291,14 +295,7 @@ private:
word high;
word low;
#endif
- };
-
- union
- {
- #ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE
- dword whole_;
- #endif
- struct dword_struct halfs_;
+ } halfs_;
};
};
@@ -1201,24 +1198,20 @@ public:
#define AS1(x) #x ";"
#define AS2(x, y) #x ", " #y ";"
#define AddPrologue \
- word res; \
__asm__ __volatile__ \
( \
"push %%ebx;" /* save this manually, in case of -fPIC */ \
- "mov %3, %%ebx;" \
+ "mov %2, %%ebx;" \
".intel_syntax noprefix;" \
"push ebp;"
#define AddEpilogue \
"pop ebp;" \
".att_syntax prefix;" \
"pop %%ebx;" \
- "mov %%eax, %0;" \
- : "=g" (res) \
+ : \
: "c" (C), "d" (A), "m" (B), "S" (N) \
: "%edi", "memory", "cc" \
- ); \
- return res;
-
+ );
#define MulPrologue \
__asm__ __volatile__ \
( \