From 153ab330748290bd83b996f0b14e6a0112f036fc Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Wed, 23 Jan 2013 09:57:06 +0100 Subject: [PATCH] Properly deal with I/O errors when parsing config files. Fixes #3152 --- lib/config/configcompiler.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/config/configcompiler.cpp b/lib/config/configcompiler.cpp index dfd06e987..29102788c 100644 --- a/lib/config/configcompiler.cpp +++ b/lib/config/configcompiler.cpp @@ -55,7 +55,7 @@ ConfigCompiler::~ConfigCompiler(void) */ size_t ConfigCompiler::ReadInput(char *buffer, size_t max_size) { - m_Input->read(buffer, max_size); + m_Input->readsome(buffer, max_size); return static_cast(m_Input->gcount()); } @@ -122,6 +122,8 @@ void ConfigCompiler::HandleLibrary(const String& library) vector ConfigCompiler::CompileStream(const String& path, istream *stream) { + stream->exceptions(istream::failbit | istream::badbit); + ConfigCompiler ctx(path, stream); ctx.Compile(); return ctx.GetResult(); -- 2.40.0