diff --git a/components/nif/nif_file.hpp b/components/nif/nif_file.hpp index a4eaa8990..23bccb0fe 100644 --- a/components/nif/nif_file.hpp +++ b/components/nif/nif_file.hpp @@ -193,11 +193,12 @@ public: std::string getString(size_t length) { - std::string str; - str.resize(length); + std::vector str (length+1, 0); + if(inp->read(&str[0], length) != length) - return std::string(); - return str.substr(0, str.find('\0')); + throw std::runtime_error ("string length in NIF file does not match"); + + return &str[0]; } std::string getString() {