diff options
author | Riccardo Spagni <ric@spagni.net> | 2017-01-08 16:43:35 -0800 |
---|---|---|
committer | Riccardo Spagni <ric@spagni.net> | 2017-01-08 16:43:35 -0800 |
commit | 278562d2c2df90fe56cdc6d7c3082c45795fd0ad (patch) | |
tree | 76733685f37c14e341334d3bf25470b670de2374 /external | |
parent | Merge pull request #1521 (diff) | |
parent | portable serializer: use signed char for size (diff) | |
download | monero-278562d2c2df90fe56cdc6d7c3082c45795fd0ad.tar.xz |
Merge pull request #1531
9d1d3a45 portable serializer: use signed char for size (kenshi84)
Diffstat (limited to 'external')
-rw-r--r-- | external/boost/archive/portable_binary_archive.hpp | 5 | ||||
-rw-r--r-- | external/boost/archive/portable_binary_iarchive.hpp | 2 | ||||
-rw-r--r-- | external/boost/archive/portable_binary_oarchive.hpp | 4 |
3 files changed, 7 insertions, 4 deletions
diff --git a/external/boost/archive/portable_binary_archive.hpp b/external/boost/archive/portable_binary_archive.hpp index 560ef121b..e940c5b9e 100644 --- a/external/boost/archive/portable_binary_archive.hpp +++ b/external/boost/archive/portable_binary_archive.hpp @@ -14,6 +14,7 @@ #include <boost/config.hpp>
#include <boost/cstdint.hpp>
#include <boost/static_assert.hpp>
+#include <boost/archive/archive_exception.hpp>
#include <climits>
#if CHAR_BIT != 8
@@ -37,7 +38,9 @@ enum portable_binary_archive_flags { //#endif
inline void
-reverse_bytes(char size, char *address){
+reverse_bytes(signed char size, char *address){
+ if (size <= 0)
+ throw archive_exception(archive_exception::other_exception);
char * first = address;
char * last = first + size - 1;
for(;first < last;++first, --last){
diff --git a/external/boost/archive/portable_binary_iarchive.hpp b/external/boost/archive/portable_binary_iarchive.hpp index b67899b52..7792b530d 100644 --- a/external/boost/archive/portable_binary_iarchive.hpp +++ b/external/boost/archive/portable_binary_iarchive.hpp @@ -234,7 +234,7 @@ namespace boost { namespace archive { inline void
portable_binary_iarchive::load_impl(boost::intmax_t & l, char maxsize){
- char size;
+ signed char size;
l = 0;
this->primitive_base_t::load(size);
diff --git a/external/boost/archive/portable_binary_oarchive.hpp b/external/boost/archive/portable_binary_oarchive.hpp index 74afe2357..9ed30d064 100644 --- a/external/boost/archive/portable_binary_oarchive.hpp +++ b/external/boost/archive/portable_binary_oarchive.hpp @@ -225,7 +225,7 @@ portable_binary_oarchive::save_impl( const boost::intmax_t l,
const char maxsize
){
- char size = 0;
+ signed char size = 0;
if(l == 0){
this->primitive_base_t::save(size);
@@ -245,7 +245,7 @@ portable_binary_oarchive::save_impl( }while(ll != 0);
this->primitive_base_t::save(
- static_cast<char>(negative ? -size : size)
+ static_cast<signed char>(negative ? -size : size)
);
if(negative)
|