From: Josh Date: Mon, 27 Oct 2014 19:10:26 +0000 (-0700) Subject: Snort2Lua: catch extra errors X-Git-Tag: 3.0.0-233~1320^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a618eb550d7ffc2b1f04569527302e4fe0650a2d;p=thirdparty%2Fsnort3.git Snort2Lua: catch extra errors --- diff --git a/tools/snort2lua/utils/converter.cc b/tools/snort2lua/utils/converter.cc index a7acc1e67..b1684f4e9 100644 --- a/tools/snort2lua/utils/converter.cc +++ b/tools/snort2lua/utils/converter.cc @@ -18,6 +18,8 @@ */ // converter.cc author Josh Rosenbaum +#include + #include "utils/converter.h" #include "conversion_state.h" #include "data/data_types/dt_comment.h" @@ -188,15 +190,27 @@ int Converter::parse_file(std::string input_file) { orig_text += tmp; std::istringstream data_stream(orig_text); - while(data_stream.peek() != EOF) + + try { - //FIXIT-M J place this in a try catch - if ((state == nullptr) || !state->convert(data_stream)) + while(data_stream.peek() != EOF) { - data_api.failed_conversion(data_stream); - break; + //FIXIT-M J place this in a try catch + if ((state == nullptr) || !state->convert(data_stream)) + { + data_api.failed_conversion(data_stream); + break; + } } } + catch (const std::invalid_argument& e) + { + data_api.failed_conversion(data_stream, e.what()); + } + catch (const std::out_of_range& e) + { + data_api.failed_conversion(data_stream, e.what()); + } orig_text.clear(); reset_state();