read vtable size through ReadScalar() (#5636)
authorFujiZ <i@fujiz.me>
Mon, 25 Nov 2019 20:52:42 +0000 (04:52 +0800)
committerWouter van Oortmerssen <aardappel@gmail.com>
Mon, 25 Nov 2019 20:52:42 +0000 (12:52 -0800)
include/flatbuffers/flatbuffers.h

index 5c846a6..94f78d9 100644 (file)
@@ -1364,7 +1364,7 @@ class FlatBufferBuilder {
            it += sizeof(uoffset_t)) {
         auto vt_offset_ptr = reinterpret_cast<uoffset_t *>(it);
         auto vt2 = reinterpret_cast<voffset_t *>(buf_.data_at(*vt_offset_ptr));
-        auto vt2_size = *vt2;
+        auto vt2_size = ReadScalar<voffset_t>(vt2);
         if (vt1_size != vt2_size || 0 != memcmp(vt2, vt1, vt1_size)) continue;
         vt_use = *vt_offset_ptr;
         buf_.pop(GetSize() - vtableoffsetloc);