From a307e637c6d44f0672244dbf22cc95e29f19a3bf Mon Sep 17 00:00:00 2001 From: Danny Browning Date: Tue, 18 Sep 2018 10:05:03 -0600 Subject: [PATCH] suricata: file existence check (bug #2615) Files and directories passed via command line option -r should be checked for existence during command line parsing and not start additional suricata functionality. --- src/suricata.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/suricata.c b/src/suricata.c index 0b421bf9ce..cc1a8294ce 100644 --- a/src/suricata.c +++ b/src/suricata.c @@ -2025,8 +2025,18 @@ static TmEcode ParseCommandLine(int argc, char** argv, SCInstance *suri) PrintUsage(argv[0]); return TM_ECODE_FAILED; } +#ifdef OS_WIN32 + struct _stat buf; + if(_stat(optarg, &buf) != 0) { +#else + struct stat buf; + if (stat(optarg, &buf) != 0) { +#endif /* OS_WIN32 */ + SCLogError(SC_ERR_INITIALIZATION, "ERROR: Pcap file does not exist\n"); + return TM_ECODE_FAILED; + } if (ConfSetFinal("pcap-file.file", optarg) != 1) { - fprintf(stderr, "ERROR: Failed to set pcap-file.file\n"); + SCLogError(SC_ERR_INITIALIZATION, "ERROR: Failed to set pcap-file.file\n"); return TM_ECODE_FAILED; }