Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonio Vazquez <blendergit@gmail.com>2022-06-21 20:09:54 +0300
committerAntonio Vazquez <blendergit@gmail.com>2022-06-21 20:09:54 +0300
commitdd6d0aefcc56288bfe154fe06df56163d6961372 (patch)
tree7b74c26bcd48d0fbd844fd8b286c9a399813b203 /extern/draco/draco/src/draco/compression/mesh/mesh_sequential_decoder.cc
parentc27a395d8cd8b58b3155cfdc26ae35198fbcdb14 (diff)
parent714001683888770f9d870ba73edd65f4c2757bda (diff)
Merge branch 'master' into asset-greasepencilasset-greasepencil
Diffstat (limited to 'extern/draco/draco/src/draco/compression/mesh/mesh_sequential_decoder.cc')
-rw-r--r--extern/draco/draco/src/draco/compression/mesh/mesh_sequential_decoder.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/extern/draco/draco/src/draco/compression/mesh/mesh_sequential_decoder.cc b/extern/draco/draco/src/draco/compression/mesh/mesh_sequential_decoder.cc
index 53f5e8651b8..fbc7383eef1 100644
--- a/extern/draco/draco/src/draco/compression/mesh/mesh_sequential_decoder.cc
+++ b/extern/draco/draco/src/draco/compression/mesh/mesh_sequential_decoder.cc
@@ -53,6 +53,11 @@ bool MeshSequentialDecoder::DecodeConnectivity() {
if (faces_64 > 0xffffffff / 3) {
return false;
}
+ if (faces_64 > buffer()->remaining_size() / 3) {
+ // The number of faces is unreasonably high, because face indices do not
+ // fit in the remaining size of the buffer.
+ return false;
+ }
if (points_64 > faces_64 * 3) {
return false;
}
@@ -91,7 +96,7 @@ bool MeshSequentialDecoder::DecodeConnectivity() {
}
mesh()->AddFace(face);
}
- } else if (mesh()->num_points() < (1 << 21) &&
+ } else if (num_points < (1 << 21) &&
bitstream_version() >= DRACO_BITSTREAM_VERSION(2, 2)) {
// Decode indices as uint32_t.
for (uint32_t i = 0; i < num_faces; ++i) {