diff options
Diffstat (limited to 'o3d/import/cross/archive_processor.cc')
-rw-r--r-- | o3d/import/cross/archive_processor.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/o3d/import/cross/archive_processor.cc b/o3d/import/cross/archive_processor.cc index e400cf1..674579f 100644 --- a/o3d/import/cross/archive_processor.cc +++ b/o3d/import/cross/archive_processor.cc @@ -75,8 +75,10 @@ StreamProcessor::Status ArchiveProcessor::ProcessFile(const char *filename) { // progressive streaming system FILE *fp = fopen(filename, "rb"); if (!fp) return FAILURE; // can't open file! - fread(p, sizeof(uint8), file_length, fp); - fclose(fp); + if (static_cast<size_t>(file_length) != + fread(p, sizeof(uint8), file_length, fp)) + return FAILURE; + if (0 != fclose(fp)) return FAILURE; MemoryReadStream stream(p, file_length); |