diff --git a/src/libslic3r/Format/OBJ.cpp b/src/libslic3r/Format/OBJ.cpp index f0a002f50..cb7eb4549 100644 --- a/src/libslic3r/Format/OBJ.cpp +++ b/src/libslic3r/Format/OBJ.cpp @@ -7,6 +7,8 @@ #include <string> +#include <boost/log/trivial.hpp> + #ifdef _WIN32 #define DIR_SEPARATOR '\\' #else @@ -22,7 +24,7 @@ bool load_obj(const char *path, TriangleMesh *meshptr) // Parse the OBJ file. ObjParser::ObjData data; if (! ObjParser::objparse(path, data)) { - // die "Failed to parse $file\n" if !-e $path; + BOOST_LOG_TRIVIAL(error) << "load_obj: failed to parse " << path; return false; } @@ -103,7 +105,7 @@ bool load_obj(const char *path, TriangleMesh *meshptr) stl_get_size(&stl); mesh.repair(); if (mesh.facets_count() == 0) { - // die "This OBJ file couldn't be read because it's empty.\n" + BOOST_LOG_TRIVIAL(error) << "load_obj: This OBJ file couldn't be read because it's empty. " << path; return false; } diff --git a/src/libslic3r/Format/objparser.cpp b/src/libslic3r/Format/objparser.cpp index f675bfd66..12cee350d 100644 --- a/src/libslic3r/Format/objparser.cpp +++ b/src/libslic3r/Format/objparser.cpp @@ -1,6 +1,7 @@ #include <stdlib.h> #include <string.h> +#include <boost/log/trivial.hpp> #include <boost/nowide/cstdio.hpp> #include "objparser.hpp" @@ -312,7 +313,7 @@ static bool obj_parseline(const char *line, ObjData &data) break; } default: - printf("ObjParser: Unknown command: %c\r\n", c1); + BOOST_LOG_TRIVIAL(error) << "ObjParser: Unknown command: " << c1; break; } @@ -344,12 +345,16 @@ bool objparse(const char *path, ObjData &data) lastLine = i + 1; } lenPrev = len - lastLine; + if (lenPrev > 65536) { + BOOST_LOG_TRIVIAL(error) << "ObjParser: Excessive line length"; + ::fclose(pFile); + return false; + } memmove(buf, buf + lastLine, lenPrev); - assert(lenPrev <= 65536); } } catch (std::bad_alloc&) { - printf("Out of memory\r\n"); + BOOST_LOG_TRIVIAL(error) << "ObjParser: Out of memory"; } ::fclose(pFile); @@ -381,7 +386,8 @@ bool objparse(std::istream &stream, ObjData &data) } } catch (std::bad_alloc&) { - printf("Out of memory\r\n"); + BOOST_LOG_TRIVIAL(error) << "ObjParser: Out of memory"; + return false; } return true;