]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
DNP3: --afl-dnp3 entry point
authorJason Ish <ish@unx.ca>
Fri, 15 Apr 2016 22:49:28 +0000 (16:49 -0600)
committerVictor Julien <victor@inliniac.net>
Thu, 27 Oct 2016 08:25:34 +0000 (10:25 +0200)
src/suricata.c

index 48125f58330cbfd86b3648276d5a83ba9c1eb3fb..ac228242809b13292e825ef28ff812c07548f07e 100644 (file)
 #include "app-layer-smb.h"
 #include "app-layer-modbus.h"
 #include "app-layer-enip.h"
+#include "app-layer-dnp3.h"
 
 #include "util-decode-der.h"
 #include "util-radix-tree.h"
@@ -1140,7 +1141,8 @@ static TmEcode ParseCommandLine(int argc, char** argv, SCInstance *suri)
         {"netmap", optional_argument, 0, 0},
         {"pcap", optional_argument, 0, 0},
         {"simulate-ips", 0, 0 , 0},
-        {"afl-rules", required_argument, 0 , 0},
+
+        /* AFL app-layer options. */
         {"afl-http-request", required_argument, 0 , 0},
         {"afl-http", required_argument, 0 , 0},
         {"afl-tls-request", required_argument, 0 , 0},
@@ -1160,9 +1162,15 @@ static TmEcode ParseCommandLine(int argc, char** argv, SCInstance *suri)
         {"afl-enip-request", required_argument, 0 , 0},
         {"afl-enip", required_argument, 0 , 0},
         {"afl-mime", required_argument, 0 , 0},
+        {"afl-dnp3-request", required_argument, 0, 0},
+        {"afl-dnp3", required_argument, 0, 0},
 
+        /* Other AFL options. */
+        {"afl-rules", required_argument, 0 , 0},
+        {"afl-mime", required_argument, 0 , 0},
         {"afl-decoder-ppp", required_argument, 0 , 0},
         {"afl-der", required_argument, 0, 0},
+
 #ifdef BUILD_UNIX_SOCKET
         {"unix-socket", optional_argument, 0, 0},
 #endif
@@ -1439,6 +1447,14 @@ static TmEcode ParseCommandLine(int argc, char** argv, SCInstance *suri)
                 AppLayerParserSetup();
                 RegisterENIPTCPParsers();
                 exit(AppLayerParserFromFile(ALPROTO_ENIP, optarg));
+            } else if(strcmp((long_opts[option_index]).name, "afl-dnp3-request") == 0) {
+                AppLayerParserSetup();
+                RegisterDNP3Parsers();
+                exit(AppLayerParserRequestFromFile(ALPROTO_DNP3, optarg));
+            } else if(strcmp((long_opts[option_index]).name, "afl-dnp3") == 0) {
+                AppLayerParserSetup();
+                RegisterDNP3Parsers();
+                exit(AppLayerParserFromFile(ALPROTO_DNP3, optarg));
 #endif
 #ifdef AFLFUZZ_MIME
             } else if(strcmp((long_opts[option_index]).name, "afl-mime") == 0) {