diff options
author | Perttu Ahola <celeron55@gmail.com> | 2011-02-23 02:49:57 +0200 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2011-02-23 02:49:57 +0200 |
commit | 9778347c7f118f6b74153f1d2c8070920352eb68 (patch) | |
tree | 6be9dccbc2882645aa5430281b1a7e34cbcc2717 /src/utility.h | |
parent | eef7bc35705611e3060fe1e6b7c2f8bbebb2ba8b (diff) | |
download | minetest-9778347c7f118f6b74153f1d2c8070920352eb68.tar.gz minetest-9778347c7f118f6b74153f1d2c8070920352eb68.tar.bz2 minetest-9778347c7f118f6b74153f1d2c8070920352eb68.zip |
mainly work on object scripting api
Diffstat (limited to 'src/utility.h')
-rw-r--r-- | src/utility.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/utility.h b/src/utility.h index d4bb04c6c..2b878b82b 100644 --- a/src/utility.h +++ b/src/utility.h @@ -1832,7 +1832,11 @@ inline std::string deSerializeString(std::istream &is) { char buf[2]; is.read(buf, 2); + if(is.gcount() != 2) + throw SerializationError("deSerializeString: size not read"); u16 s_size = readU16((u8*)buf); + if(s_size == 0) + return ""; Buffer<char> buf2(s_size); is.read(&buf2[0], s_size); std::string s; @@ -1867,7 +1871,11 @@ inline std::string deSerializeLongString(std::istream &is) { char buf[4]; is.read(buf, 4); + if(is.gcount() != 4) + throw SerializationError("deSerializeLongString: size not read"); u32 s_size = readU32((u8*)buf); + if(s_size == 0) + return ""; Buffer<char> buf2(s_size); is.read(&buf2[0], s_size); std::string s; |