https://bugzilla.balabit.com/show_bug.cgi?id=90 --- Comment #2 from andrewn@locus.net 2010-06-29 20:08:38 --- Created an attachment (id=20) --> (https://bugzilla.balabit.com/attachment.cgi?id=20) Shell script that demonstrates Bug #90 This shell script demonstrates bug #90. It creates a temporary config file, executes the specified syslog-ng binary, and sends a single log entry. It assumes that /tmp is writable, ./syslog-ng-3.0.7-unpatched is the syslog-ng binary, and /bin/logger exists from util-linux. On syslog-ng 3.0.7 the parser in the first test works (flags(escape-none,drop-invalid)) while the in the second test it falls through (flags(escape-backslash,drop-invalid)). I would expect both sets of flags to behave identically on input which doesn't contain backslashes. The current code returns FALSE if (!cur_column && (self->flags & LOG_CSV_PARSER_DROP_INVALID)). Since cur_column is set to the next element after assigning a match cur_column should be NULL if all columns have been assigned. This is the case for escape-backslash and escape-double-char, but at line 251 escape-none breaks before setting cur_column if it hits the end of the string. The test should be (cur_column && (self->flags & LOG_CSV_PARSER_DROP_INVALID)). I added in the *src test because it makes sense based on the name of the flag. Based on the documentation you quoted it would have to be a separate flag. -- Configure bugmail: https://bugzilla.balabit.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are watching all bug changes.