From: Victor Julien Date: Thu, 25 Jan 2018 09:05:55 +0000 (+0100) Subject: rust/file: handle file open errors X-Git-Tag: suricata-4.1.0-beta1~293 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3a2e4614d074ac66df1f7b5a3ec15d9da9c78660;p=thirdparty%2Fsuricata.git rust/file: handle file open errors --- diff --git a/rust/src/filetracker.rs b/rust/src/filetracker.rs index 0bfe1a7077..b1b7a4d5df 100644 --- a/rust/src/filetracker.rs +++ b/rust/src/filetracker.rs @@ -95,8 +95,8 @@ impl FileTransferTracker { let r = files.file_open(config, &self.track_id, name, flags); if r == 0 { files.file_set_txid_on_last_file(self.tx_id); + self.file_open = true; } - self.file_open = true; r } @@ -110,7 +110,7 @@ impl FileTransferTracker { } pub fn trunc (&mut self, files: &mut FileContainer, flags: u16) { - if self.file_is_truncated { + if self.file_is_truncated || !self.file_open { return; } let myflags = flags | 1; // TODO util-file.c::FILE_TRUNCATED @@ -159,9 +159,13 @@ impl FileTransferTracker { self.open(config, files, flags, name); } - let res = self.update(files, flags, data, 0); - SCLogDebug!("NEW CHUNK: update res {:?}", res); - res + if self.file_open == true { + let res = self.update(files, flags, data, 0); + SCLogDebug!("NEW CHUNK: update res {:?}", res); + return res; + } + + 0 } /// update the file tracker