file: fix files not getting pruned

When the filedata logger is enabled (file extraction), but a file is not
stored due to no rules matching to force this, the file would never be
freed.

This was caused by a check in the file pruning logic that only freed a
file when the FILE_STORED flag was set. However files can also have the
FILE_NOSTORE flag set which indicates that a file won't be stored.

This patch makes sure that both conditions lead to file pruning.
pull/3247/head
Victor Julien 8 years ago
parent 9423f6149f
commit ffc847db01

@ -334,7 +334,7 @@ static int FilePruneFile(File *file)
/* file is done when state is closed+, logging/storing is done (if any) */
if (file->state >= FILE_STATE_CLOSED &&
(!RunModeOutputFileEnabled() || (file->flags & FILE_LOGGED)) &&
(!RunModeOutputFiledataEnabled() || (file->flags & FILE_STORED)))
(!RunModeOutputFiledataEnabled() || (file->flags & (FILE_STORED|FILE_NOSTORE))))
{
SCReturnInt(1);
} else {

Loading…
Cancel
Save