]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Snort2Lua: catch extra errors
authorJosh <jrosenba@cisco.com>
Mon, 27 Oct 2014 19:10:26 +0000 (12:10 -0700)
committerJosh <jrosenba@cisco.com>
Mon, 27 Oct 2014 19:10:26 +0000 (12:10 -0700)
tools/snort2lua/utils/converter.cc

index a7acc1e67ee2911f2b21606fd700ef458c0df2cc..b1684f4e9ebeffd07cf1c4dd09701c5832201bac 100644 (file)
@@ -18,6 +18,8 @@
 */
 // converter.cc author Josh Rosenbaum <jrosenba@cisco.com>
 
+#include <stdexcept>
+
 #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();