Added check for stl corruption

This commit is contained in:
Matt Keeter 2014-03-25 18:53:07 -04:00
parent de5c4b440a
commit 9cc3bd82e8
4 changed files with 26 additions and 0 deletions

View file

@ -4,6 +4,7 @@
Loader::Loader(QObject* parent, const QString& filename)
: QThread(parent), filename(filename)
{
// Nothing to do here
}
void Loader::run()
@ -16,6 +17,19 @@ void Loader::run()
emit error_ascii_stl();
return;
}
// Skip the rest of the buffer
file.read(75);
// Assume we're on a little-endian system for simplicity
uint32_t tri_count;
file.read(reinterpret_cast<char*>(&tri_count), sizeof(tri_count));
if (file.size() != 84 + tri_count*50)
{
emit error_bad_stl();
return;
}
}
emit got_mesh(Mesh::load_stl(filename));