Added check for stl corruption
This commit is contained in:
parent
de5c4b440a
commit
9cc3bd82e8
4 changed files with 26 additions and 0 deletions
|
@ -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));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue