Update dovecot2-pigeonhole package to 0.5.13.
v0.5.13 2021-01-04 Aki Tuomi <aki.tuomi@open-xchange.com>
- duplicate: The test was handled badly in a multiscript (sieve_before,
sieve_after) scenario in which an earlier script in the sequence with
a duplicate test succeeded, while a later script caused a runtime
failure. In that case, the message is recorded for duplicate tracking,
while the message may not actually have been delivered in the end.
- editheader: Sieve interpreter entered infinite loop at startup when
the "editheader" configuration listed an invalid header name. This
problem can only be triggered by the administrator.
- relational: The Sieve relational extension can cause a segfault at
compile time. This is triggered by invalid script syntax. The segfault
happens when this match type is the last argument of the test command.
This situation is not possible in a valid script; positional arguments
are normally present after that, which would prevent the segfault.
- sieve: For some Sieve commands the provided mailbox name is not
properly checked for UTF-8 validity, which can cause assert crashes at
runtime when an invalid mailbox name is encountered. This can be
caused by the user by writing a bad Sieve script involving the
affected commands ("mailboxexists", "specialuse_exists").
This can be triggered by the remote sender only when the user has
written a Sieve script that passes message content to one of the
affected commands.
- sieve: Large sequences of 8-bit octets passed to certain Sieve
commands that create or modify message headers that allow UTF-8 text
(vacation, notify and addheader) can cause the delivery or IMAP
process (when IMAPSieve is used) to enter a memory-consuming
semi-infinite loop that ends when the process exceeds its memory
limits. Logged in users can cause these hangs only for their own
processes.
Distfile changes.
1. Official annoucne says "The only change here is that the configure.ac
file has correctly formatted version number."
2. Name of distfile is changed to match previous file naming scheme.
Old distfile is still available.
3. automake 1.15.1 is used instead of previous 1.15. So, generated files
by it are changed.
4. Other files are not changed, so there is no functional change.
Bump PKGREVISION.
Update dovecot2-pigeonhole to 0.5.11.
v0.5.11 2020-08-12 Aki Tuomi <aki.tuomi@open-xchange.com>
* managesieve: managesieve_max_line_length setting is now a "size" type
instead of just number of bytes. This allows using e.g. "64k" as the
value.
- lib-sieve: When folding white space is used in the Message-ID header,
it is not stripped away correctly before the message ID value is used,
causing e.g. garbled log lines at delivery.
v0.5.9:
+ Added events for Sieve and ManageSieve, see
https://doc.dovecot.org/admin_manual/list_of_events/#pigeonhole
+ Pigeonhole: Implement the Sieve "special-use" extension described in
RFC 8579.
- duplicate: Test only compared the handles which would cause
different values to be cached as the same duplicate test. Fix to also
compare the actual hashes.
- imap_sieve_filter: IMAP FILTER Command had various bugs in error
handling. Errors may have been duplicated for each email, errors
may have been missing entirely, command tag and ERRORS/WARNINGS
parameters were swapped.
Update dovecot2-pigeonhole to 0.5.8.
0.5.8 2019-10-08
Changes
- Sieve may leak resources in rare cases when a redirect, vacation or
report action fails to send the message. This mainly applies when Sieve
is executed in IMAP context; i.e., for the IMAPSIEVE or FILTER=SIEVE
capabilities.
Update dovecot2-pigeonhole to 0.5.7.2.
Changes
-------
* CVE-2019-11500: ManageSieve protocol parser does not properly handle
NUL byte
when scanning data in quoted strings, leading to out of bounds heap
memory writes. Found by Nick Roessler and Rafi Rubin.
Update dovecot2-pigeonhole to 0.5.7.
Changes
-------
+ vacation: Made the subject for the automatic response message produced
by the Sieve vacation action configurable. Both the default subject
(if the script defines none) and the subject template (e.g. used to
add a subject prefix) can be configured.
- dsync: dsync-replication does not synchronize Sieve scripts.
- imap_sieve_filter: Reduce FILTER=SIEVE verbosity over IMAP connection.
- testsuite: Pigeonhole testsuite segfaulted if it was compiled with
GCC 9
Update dovecot2-pigeonhole to 0.5.6.
v0.5.6 2019-04-30 Aki Tuomi <aki.tuomi@open-xchange.com>
+ sieve: Redirect loop prevention is sometimes ineffective. Improve
existing loop detection by also recognizing the
X-Sieve-Redirected-From header in incoming messages and dropping
redirect actions when it points to the sending account. This header
is already added by the redirect action, so this improvement only
adds an additional use of this header.
- sieve: Prevent execution of implicit keep upon temporary failure
occurring at runtime.
Update dovecot2-pigeonhole to 0.5.5 for dovecot 2.3.5.
v0.5.5 2019-03-05 Stephan Bosch <stephan@rename-it.nl>
+ IMAPSieve: Add new plugin/imapsieve_expunge_discarded setting which
causes messages discarded by an IMAPSieve script to be expunged
immediately, rather than only being marked as "\Deleted" (which is
still the default behavior).
- IMAPSieve: Fix panic crash occurring when a COPY command copies
messages from a virtual mailbox where the source messages originate
from more than a single real mailbox.
- imap4flags extension: Fix deleting all keywords. When the action
resulted in all keywords being removed, no changes were actually
applied.
- variables extension: Fix truncation of UTF-8 variable content. The
maximum size of Sieve variables was enforced by truncating the
variable string content bluntly at the limit, but this does not
consider UTF-8 code point boundaries. This resulted in broken UTF-8
strings. This problem also surfaced for variable modifiers, such as
the ":encodeurl" modifier provided by the Sieve "enotify" extension.
In that case, the resulting URI escaping could also be truncated
inappropriately.
- IMAPSieve, IMAP FILTER=SIEVE: Fix replacing a modified message. Sieve
scripts running in IMAPSIEVE or IMAP FILTER=SIEVE context that
modify the message, stored the message a second time, rather than
replacing the originally stored unmodified message.
- Fix segmentation fault occurring when both the sieve_extprograms
plugin (for the Sieve interpreter) and the imap_filter_sieve plugin
(for IMAP) are loaded at the same time. A symbol was defined by both
plugins, causing a clash when both were loaded.
v0.5.4:
* Adjustments to several changes in Dovecot v2.3.4 make this Pigeonhole
release dependent on that Dovecot release; it will not compile against
older Dovecot versions. And, conversely, you need to upgrade
Pigeonhole when upgrading Dovecot to v2.3.4.
* The changes regarding the default postmaster_address in Dovecot v2.3.4
mainly apply to Pigeonhole. The new default should work for all
existing installations, thereby fixing several reported v2.3/v0.5
migration problems.
- IMAP FILTER=SIEVE capability: Fix assert crash occurring when running
UID FILTER on a Sieve script with errors.
Changelog v0.5.3:
- Fix assertion panic occurring when managesieve service fails to open
INBOX while saving a Sieve script. This was caused by a lack of
cleanup after failure.
- Fix specific messages causing an assert panic with actions that
compose a reply (e.g. vacation). With some rather weird input from the
original message, the header folding algorithm (as used for composing
the References header for the reply) got confused, causing the panic.
- IMAP FILTER=SIEVE capability: Fix FILTER SIEVE SCRIPT command parsing.
After finishing reading the Sieve script, the command parsing
sometimes didn't continue with the search arguments. This is a time-
critical bug that likely only occurs when the Sieve script is sent in
the next TCP frame.
v0.5.2:
+ Implement plugin for the a vendor-defined IMAP capability called
"FILTER=SIEVE". It adds the ability to manually invoke Sieve filtering
in IMAP. More information can be found in
doc/plugins/imap_filter_sieve.txt.
- The Sieve addess test caused an assertion panic for invalid addresses
with UTF-8 codepoints in the localpart. Fixed by properly detecting
invalid addresses with UTF-8 codepoints in the localpart and skipping
these like other invalid addresses while iterating addresses for the
address test.
- Make the length of the subject header for the vacation response
configurable and enforce the limit in UTF-8 codepoints rather than
bytes. The subject header for a vacation response was statically
truncated to 256 bytes, which is too limited for multi-byte UTF-8
characters.
- Sieve editheader extension: Fix assertion panic occurring when it is
used to manipulate a message header with a very large header field.
- Properly abort execution of the sieve_discard script upon error.
Before, the LDA Sieve plugin attempted to execute the sieve_discard
script when an error occurs. This can lead to the message being lost.
- Fix the interaction between quota and the sieve_discard script. When
quota was used together with a sieve_discard script, the message
delivery did not bounce when the quota was exceeded.
Changes:
v0.5.1 28-03-2018 Stephan Bosch <stephan@rename-it.nl>
- Explicitly disallow UTF-8 in localpart in addresses parsed from Sieve
script.
- editheader extension: Corrected the stream position calculations
performed while making the modified message available as a stream.
Pigeonhole Sieve crashed in LMTP with an assertion panic when the
Sieve editheader extension was used before the message was redirected.
Experiments indicate that the problem occurred only with LMTP and that
LDA is not affected.
- fileinto extension: Fix assert panic occurring when fileinto is used
without being listed in the require line, while the copy extension is
listed there. This is a very old bug.
- imapsieve plugin: Do not assert crash or log an error for messages
that disappear concurrently while applying Sieve scripts. This event
is now logged as a debug message.
- Sieve extprograms plugin: Large output from "execute" command crashed
delivery. Fixed buffering issue in code that handles output from the
external program.
Changelog v0.5.0.1:
- imap4flags extension: Fix binary corruption occurring when
setflag/addflag/removeflag flag-list is a variable.
- sieve-extprograms plugin: Fix segfault occurring when used in
IMAPSieve context.
* editheader extension: The implementation of header modifications is
heavily updated. Although the functionality has not changed, the
underlying code was updated to address several static analysis
warnings, runtime integer arithmetic warnings (Clang), and to match
updates in the Dovecot stream API.
+ variables extension: Made the maximum scope and variable size
configurable.
+ subaddress: Support multiple recipient_delimiters.
- enotify extension: mailto method: Fixed parsing of mailto URI with
only a header part.
- enotify plugin: mailto method: Make sure the "From:" header is set to
a usable address and not "(null)".
- Fixed writing address headers to outgoing messages. Sometimes headers
were MIME-encoded twice, yielding invalid results.
v0.4.21:
* redirect action: Always set the X-Sieve-Redirected-From header to
sieve_user_email if configured. Before, it would use the envelope recipient
instead if available, which makes no sense if the primary e-mail address is
available.
+ vacation extension: Allow ignoring the envelope sender while composing the
"To:" header for the reply. Normally, the "To:" header is composed from
the address found in the "Sender", "Resent-From" or "From" headers that is
equal to the envelope sender. If none is then found, the bare envelope
sender is used. This change adds a new setting
"sieve_vacation_to_header_ignore_envelope". With this setting enabled, the
"To:" header is always composed from those headers in the source message.
The new setting thus allows ignoring the envelope, which is useful e.g.
when SRS is used.
+ vacation extension: Compose the "To:" header from the full sender address
found in the first "Sender:", "From:" or "Resent-From:" header. Before, it
would create a "To:" header without a phrase part. The new behavior is
nicer, since the reply will be addressed to the sender by name if possible.
- LDA Sieve plugin: Fixed sequential execution of LDAP-based scripts. A
missing LDAP-based script could cause the script sequence to exit earlier.
- sieve-filter: Removed the (now) duplicate utf8 to mutf7 mailbox name
conversion. This caused problems with mailbox names containing UTF-8
characters. The Dovecot API was changed years ago, but apparently
sieve-filter was never updated.
Changelog v0.4.20:
+ Made the retention period for redirect duplicate identifiers
configurable. For accounts that perform many redirects, the lda-dupes
database could grow to impractical sizes. Changed the default
retention period from 24 to 12 hours.
- sieve-filter: Fixed memory leak: forgot to clean up script binary at
end of execution. Normally, this would merely be an inconsequential
memory leak. However, when the script comes from an LDAP storage, this
would cause io leak warnings.
- managesieve-login: Fixed handling of AUTHENTICATE command. A second
authenticate command would be parsed wrong. This problem was caused by
changes in the previous release.
- LDA Sieve plugin: Fixed minor memory leak caused by not cleaning up
the sieve_discard script.
* This release adjusts Pigeonhole to several changes in the Dovecot API,
making it depend on Dovecot v2.2.31. Previous versions of Pigeonhole
will produce compile warnings with the recent Dovecot releases (but
still work ok).
- Fixed bug in handling of implicit keep in some cases. Implicit
side-effects, such as assigned flags, were not always applied
correctly. This is in essence a very old bug, but it was exposed by
recent changes.
- include extension: Fixed segfault that (sometimes) occurred when the
global script location was left unconfigured.
v0.4.18 12-04-2017 Stephan Bosch <stephan@rename-it.nl>
+ imapsieve plugin: Implemented the copy_source_after rule action. When this
is enabled for a mailbox rule, the specified Sieve script is executed for
the message in the source mailbox during a "COPY" event. This happens only
after the Sieve script that is executed for the corresponding message in the
destination mailbox finishes running successfully.
+ imapsieve plugin: Added non-standard Sieve environment items for the source
and destination mailbox.
- multiscript: The execution of the discard script had an implicit "keep",
rather than an implicit "discard".
- LDA Sieve plugin: Fixed handling of an early explicit keep during
multiscript execution. Action side-effects and the message snapshot would be
lost at the final stage where the implicit keep is evaluated. This could
result in the IMAP flags assigned to the message to be forgotten or that
headers modified by the "editheader" extension would revert to their
original state.
- file script storage: Amended the up-to-date time stamp comparison for
on-disk binaries to include nanoseconds. This will fix problems occurring
when both binary and script are saved within the same second. This fix is
ineffective on older systems that have no support for nanoseconds in stat()
timestamps, which should be pretty rare nowadays.
- file script storage: Improve saving and listing permission error to include
more details.
- imapsieve plugin: Make sure "INBOX" is upper case in static mailbox rules.
Otherwise, the mailbox name would never match, since matching is performed
case-sensitively and Dovecot only returns the upper-cased "INBOX".
- imapsieve plugin: Fixed assert failure occurring when used with virtual
mailboxes.
- doveadm sieve plugin: Fixed crash when setting Sieve script via attribute's
string value.
* Part of the Sieve extprograms implementation was moved to Dovecot, which
means that this release depends on Dovecot v2.2.26+.
* ManageSieve: The PUTSCRIPT command now allows uploading empty Sieve scripts.
There was really no good reason to disallow doing that.
+ Sieve vnd.dovecot.report extension:
+ Added a Dovecot-Reporting-User field to the report body, which contains
the e-mail address of the user sending the report.
+ Added support for configuring the "From:" address used in the report.
+ LDA sieve plugin: Implemented support for a "discard script" that is run
when the message is going to be discarded. This allows doing something other
than throwing the message away for good.
+ Sieve vnd.dovecot.environment extension: Added vnd.dovecot.config.*
environment items. These environment items map to sieve_env_* settings from
the plugin {} section in the configuration. Such values can of course also
be returned from userdb.
+ Sieve vacation extension: Use the Microsoft X-Auto-Response-Suppress header
to prevent unwanted responses from and to (older) Microsoft products.
+ ManageSieve: Added rawlog_dir setting to store ManageSieve traffic logs.
This replaces at least partially the rawlog plugin (mimics similar IMAP/POP3
change).
- doveadm sieve plugin: synchronization: Prevent setting file timestamps to
unix epoch time. This occurred when Dovecot passed the timestamp as
'unknown' during synchronization.
- Sieve exprograms plugin: Fixed spurious '+' sometimes returned at the end
of socket-based program output.
- imapsieve plugin: Fixed crash occurring in specific situations.
- Performed various fixes based on static analysis and Clang warnings.
v0.4.15 07-07-2016 Stephan Bosch <stephan@rename-it.nl>
* vacation extension: The sieve_user_email setting is now used in the check
for implicit delivery.
- imapsieve plugin: For any mail transaction, the mailbox was opened a second
time, even if no mailbox rule matched. This was unintentional, useless and
caused problems when the imapsieve plugin was used with other plugins like
acl.
- extprograms plugin: Significantly improved error handling. No stream errors
were logged.
- extprograms plugin: Fixed bug in handling of result code from remote program
(script service).
- extprograms plugin: Connection to remote program service was not retried.
- Several small fixes based on static analysis.
- Fixed handling of quoted string localparts in email addresses.
v0.4.14 26-04-2016 Stephan Bosch <stephan@rename-it.nl>
* The address test now allows specifying the X-Original-To header.
+ Implemented the Sieve imapsieve extension and its IMAP counterpart
(RFC 6785) as a set of plugins. This allows running Sieve scripts at IMAP
activity, rather than at delivery. There are also facilities for the
familiar sieve_before/sieve_after administrator scripts. A user script is
defined for a mailbox using an IMAP METADATA entry, whereas administrator
scripts are configured using mailbox matching rules defined in the plugin
settings.
+ Adjusted the Sieve ihave extension to allow capability tests to be performed
at runtime. This way, scripts can be written that work both at delivery and
from IMAP.
+ Implemented support for runtime trace debugging. This means that detailed
information about which commands, actions and tests are performed is written
to a file. That file is created in the configured directory, but only if
that directory exists. This way, a particular user can be easily singled out
for debugging. This works much like the Dovecot rawlog facility. The trace
output is identical to what is produced using sieve-test with its "-t"
command line option.
+ Added a "sieve_user_email" setting that configures the user's primary email
address. This is mainly useful to have a user email address available in
IMAP, where envelope data is unavailable.
+ Implemented the dovecot-specific "vnd.dovecot.report" extension. This allows
sending report messages in the Message Abuse Reporting Format (RFC 5965).
- extprograms plugin: Fixed epoll() panic caused by closing the output FD
before the output stream.
- Made sure that the local part of a mail address is encoded properly using
quoted string syntax when it is not a dot-atom.
It is v0.4.12 release of Pigeonhole for Dovecot v2.2.21.
v0.4.12 06-02-2016 Stephan Bosch <stephan@rename-it.nl>
+ Implemented the Sieve extracttext extension (RFC 5703; Section 7). It is now
possible to extract body text from a message into a variable.
* Increased ABI version due to changes in the Sieve interpreter's object
definitions.
- multiscript: Fixed bug in handling of (implicit) keep; final keep action was
always executed as though there was a failure. This caused the keep action
to revert back to the initial message, causing editheader actions to be
ignored.
- managesieve-login: Fixed proxy to allow SASL mechanisms other than PLAIN.
Before, the proxy would fail if the server did not support the PLAIN
mechanism.
- ldap storage: Prevent segfault occurring when assigning certain (global)
configuration options.
v0.4.11 08-01-2016 Stephan Bosch <stephan@rename-it.nl>
- Sieve mime extension: Fixed the header :mime :anychild test to work properly
outside a foreverypart loop.
- Several fixes in message body part handling:
- Fixed assert failure occurring when text extraction is attempted on a
empty or broken text part.
- Fixed assert failure in handling of body parts that are converted to text.
- Fixed header unfolding for (mime) headers parsed from any mime part.
- Fixed trimming for (mime) headers parsed from any mime part.
- Fixed erroneous changes to the message part tree structure performed when
re-parsing the message.
- LDA Sieve plugin: Fixed logging of actions; sometimes the configured log
format was not followed.
- LDA Sieve plugin: Fixed bug in error handling of script storage
initialization.
- Sieve Extprograms plugin: Ignored ENOTCONN error in shutdown(fd, SHUT_WR)
call.
- Fixed duplication of discard actions in the script result. Each discard was
counted as a separate action, which means that action limit would be crossed
too early.
- Made sure that quota errors never get logged as errors in syslog.
- Fixed handling of implicit keep for a partially executed transaction that
yielded a temporary failure.
- Fixed handling of global errors. If master and user error handler were
identical, in some cases the log message could be lost.
- Fixed AIX compile issue in message body parser.
v0.4.10 13-12-2015 Stephan Bosch <stephan@rename-it.nl>
+ Implemented the Sieve mime and foreverypart extensions (RFC 5703). These
are fully implemented. The interaction with the editheader extension needs
some work, but this should not influence most uses; i.e., changes by the
editheader extension are not always visible using foreverypart/mime.
+ Sieve body extension: Properly implemented the `:text' body transform. It
now extracts text for HTML message parts.
+ Sieve enotify extension: mailto method: Implemented the
sieve_notify_mailto_envelope_from setting. This allows configuring the
source of the notification sender address for e-mail notifications. This is
similar to what already can be configured for redirect.
+ Added a sieve_enabled (defaults to 'yes') setting that allows explicitly
disabling Sieve processing for particular users. This used to be possible by
setting `sieve=', but ever since the sieve_before, sieve_after and
sieve_default settings were added, this method was not reliable anymore.
- variables extension: Fixed handling of empty string by the `:length' set
modifier. An empty string yielded an empty string rather than "0".
- Fixed memory leak in the Sieve script byte code dumping facility. Extension
contexts were never actually freed.
- Fixed handling of implicit keep when the last Sieve script is a global one.
In that case the implicit keep action was executed in global context, which
could mean that trivial (quota) errors ended up in the system log file,
rather than the user log file.
- doveadm sieve plugin: Fixed crashes caused by incorrect context allocation
in the sieve command implementations.
* Properly implemented checking of ABI version for Sieve interpreter
plugins, much like Dovecot itself does for plugins. This will prevent
plugin ABI mismatches.
+ Implemented a vnd.dovecot.environment extension. This builds upon the
standard environment extension and adds a few more environment items,
such as username and default mailbox. It also creates a variables
namespace so that environment items can be accessed directly. I am
still thinking about more environment items that can be added.
+ Sieve extprograms plugin: Made line endings of the input passed to the
external programs configurable. This can be configured separately for
each of the three extensions.
+ ManageSieve: Implemented proxy XCLIENT support. This allows the proxy
to pass client information to the back-end.
- ManageSieve: Fixed an assert failure occurring when a client
disconnects during the GETSCRIPT command.
- doveadm sieve plugin: Fixed incorrect initialization of mail user.
This caused a few memory leaks.
- sieve-filter command line tool: Fixed handling of failure-related
implicit keep when there is an explicit default destination folder.
This caused message duplication.
- lib-sieve: Fixed bug in RFC5322 header folding. Words longer than the
optimal line length caused empty lines in the output, which would
break the resulting message header. This surfaced in References:
headers with very long message IDs.
v0.4.8 15-05-2015 Stephan Bosch <stephan@rename-it.nl>
* LDA Sieve plugin: Dovecot changed the deliver_log_format setting to include
%{delivery_time}. This prompted changes in Pigeonhole that make this release
dependent on Dovecot v2.2.17.
+ Implemented magic to make sieve_default script visible from ManageSieve
under a configurable name. This way, users can see the default rules, edit
them and store a private adjusted version. This could also be achieved by
copying the default script into the user's script storage, but updates to
the global sieve_default script would be ignored that way.
+ ManageSieve: Implemented support for reporting command statistics at
disconnect. Statistics include the number of bytes and scripts uploaded/
downloaded/checked and the number of scripts deleted/renamed.
- Fixed problem in address test: erroneously decoded mime-encoded words in
address headers.
- extprograms plugin: Fixed failure occurring when connecting to script
service without the need to read back the output from the external program.
- Fixed bug in script storage path normalization occurring with relative
symbolic links below root.
- Fixed and updated various parts of the documentation
- ManageSieve: Used "managesieve" rather than "sieve" as login service name,
which means that all managesieve-specific settings where ignored.
- Managesieve: Storage quota was not always enforced properly for scripts
uploaded as quoted string. Nobody uses that, but it is allowed in the
specification and we support it, so it should work properly.
needed to dovecot2-pigeonhole compatible with Dovecot 2.2.16.
v0.4.7 19-03-2015 Stephan Bosch <stephan@rename-it.nl>
* editheader extension: Made protection against addition and deletion of
headers configurable separately. Also, the `Received' and `Auto-Submitted'
headers are no longer protected against addition by default.
* Turned message envelope address parse errors into warnings.
* The interpreter now accepts non-standard domain names, e.g. containing '_'.
+ Implemented the Sieve index extension (RFC 5260).
+ Implemented support for the mboxmetadata and servermetadata extensions
(RFC 5490).
+ Implemented new sieve commands for the doveadm command line utility. These
commands are currently limited to ManageSieve operations, but the other
current sieve tools will be migrated to doveadm in the near future as well.
+ Added more debug output about binary up-to-date checking.
+ Added script metadata to binary dump output.
- Fixed Sieve script binary up-to-date checking by normalizing the script
location.
- The Sieve interpreter now flushes the duplicate database during start phase
of result execution rather than commit phase. This makes sure locks on the
duplicate database are released as soon as possible, preventing contention.
- Performed a few optimizations in the lexical scanner of the language.
- Fixed bug in `:matches' match-type that made a pattern without
wildcards match as if there were a '*' at the beginning.
- Fixed crash in validation of the string parameter of the comparator tag.
- extprograms extension: Made sure supplemental group privileges are also
dropped. This was a problem reported by Debian lintian.
- Fixed bug in handling of binary errors for action side-effects and message
overrides.
- file script storage: Restructured storage initialization to address
backwards compatibility issues.
- dict script storage: Fixed small memory allocation bug.
Version 0.4.5 introduced one new 'feature', but it caused build
problems. This release fixes that. If you've successfully installed
0.4.5, you do not need to upgrade.
Changelog v0.4.6:
- After make distclean, the distributed tarball would fail to recompile.
This causes problems for some distribution builds.
Changelog v0.4.5:
+ Added a Pigeonhole version banner to doveconf output. This way, future
bug reports will also include Pigeonhole version information.
- Fixed handling of implicit keep. Last version erroneously reported
that implicit keep succeeded after an earlier failure, while it in
fact had failed. Particularly occurred for mailbox quota errors.
- Fixed segfault occurring on SunOS systems when there is no active
script.
Changelog v0.4.4:
* Added support for Japanese mail addresses with dots at non-standard
places in localpart.
* Changed handling of ENOSPACE into a normal temporary failure and added
handling of ENOQUOTA as a user error.
* Restructured result execution, so that all actions which involve mail
storage are always committed before all others.
+ Implemented support for generic Sieve storages. Using alternative
storages now also possible for sieve_before/sieve_after.
+ Implemented storage driver for retrieving Sieve scripts from LDAP.
This currently cannot be used with ManageSieve.
+ Implemented sieve_redirect_envelope_from setting, which allows
configuring the envelope sender of redirected messages.
- Fixed handling of mail storage errors occurring while evaluating the
input message.
- managesieve-login:
- Removed bogus ALERT response code returned for AUTHENTICATE
command.
- Fixed handling of invalid initial response argument to AUTHENTICATE
command.
- Fixed handling of stream errors in lexical scanner.
- Fixed handling of SMTP errors. Permanent and temporary errors were
mixed up.
- Fixed several problems reported by CLang 3.4.
- duplicate extension: Fixed erroneous compile error about conflicting
tags when `:handle' argument was used last.
- relational extension: Fixed error handling of `:value' match.
- editheader extension: Fixed header unfolding and header iteration.
- mailbox extension: Fixed the `:create' tag, which erroneously
subscribed an existing folder.
- extprograms plugin: Fixed handling of error codes.
- doveadm-sieve plugin: Fixed several bugs. Synchronization of symbolic
link in the file storage should now also work properly.
* Editheader extension: Made control characters allowed for editheader,
except NUL. Before, this would cause a runtime error.
+ Upgraded Dovecot-specific Sieve "vnd.dovecot.duplicate" extension to
match the new draft "duplicate" extension.
- Fixed sieve_result_global_log_error to log only as i_info in
administrator log (syslog) if executed from multiscript context.
- Sieve redirect extension: Adjusted loop detection to show leniency to
resent messages.
- Sieve include extension: Fixed problem with handling of duplicate
includes with different parameters :once or :optional.
- Sieve spamtest/virustest extensions: Tests were erroneously performed
against the original message. When used together with extprograms
filter to add the spam headers, the changes were not being used by
the spamtest and virustest extensions.
- Deprecated Sieve notify extension: Fixed segfault problems in message
string substitution.
- ManageSieve: Fixed active link verification to handle redundant path
slashes correctly.
- Sieve vacation extension:
- Fixed interaction of sieve_vacation_dont_check_recipient with
sieve_vacation_send_from_recipient setting.
- Fixed log message for discarded response.
- Sieve extprograms plugin:
- Forgot to disable the alarm() timeouts set for script execution.
- Fixed fd leak and handling of output shutdown.
- Fixed 'Bad filedescriptor' error occurring when disconnecting
script client.
- Made sure that programs are never forked with root privileges.
* Incompatible change in Sieve doveadm plugin: the root attribute for
Sieve scripts is changed. Make sure that you update both sides of a
dsync setup simultaneously when Sieve is involved, otherwise
synchronization will likely fail.
+ Added support for sending Sieve vacation replies with an actual
sender, rather than the default <> sender. Check the updated
doc/extensions/vacation.txt for more information.
- Fixed a binary code read problem in the `set' command of the Sieve
variables extension. Using the set command with a modifier and an
empty string value would cause code corruption problems while running
the script.
- Various fixes for doveadm-sieve plugin, mostly crashes. These include
a fix for the `Invalid value for default sieve attribute' problem.
- Various fixes for compiler and static analyzer warnings, e.g. as
reported by CLang and on 32 bit systems.
- Fixed the implementation of the new :options flag for the Sieve
include extension.
- Fixed potential segfault bug at deinitialization of the lda-sieve
plugin.
- Fixed messed up hex output for sieve-dump tool.
Subject: [Dovecot-news] Released Pigeonhole v0.4.1 for Dovecot v2.2.4.
Date: Wed, 03 Jul 2013 22:15:31 +0200
To: dovecot-news@dovecot.org, Dovecot Mailing List <dovecot@dovecot.org>
Reply-To: dovecot@dovecot.org
Content-Transfer-Encoding: 7bit
Hello Dovecot users,
Now that I am not preoccupied anymore, I quickly release a new version
of Pigeonhole for Dovecot v2.2. This consists mainly of bug fixes. One
new feature is that the Sieve plugin will try to pass temporary
failures (e.g. from mail storage) back to LDA/LMTP as much as
possible. However, this change turned out a little bigger than I would
have liked, so experiment with it a bit before you deploy it in
production.
Changelog v0.4.1:
+ Added support for handling temporary failures. These are passed back
to LDA/LTMP to produce an appropriate response towards the MTA.
- Sieve storage: Removed PATH_MAX limitation for active symlink. This
caused problems for GNU/Hurd.
- Fixed line endings in X-Sieve headers added by redirect command.
- ManageSieve: Fixed '[' ']' stupidity for response codes (only
happened before login).
- Fixed setting name in example-config/conf.d/20-managesieve.conf.
- Sieve extprograms plugin: Fixed interaction between pipe command and
remote script service. The output from the script service was never
read, causing a broken pipe error at the script service. Apparently,
this was broken since the I/O handling for extprograms was last
revised.
- Fixed assertion failure due to datastack problem in message header
composition.
v0.4.0 09-05-2013 Stephan Bosch <stephan@rename-it.nl>
+ Added doveadm-sieve plugin that provides the possibility to synch Sieve
scripts using doveadm sync along with the user's mailboxes.
+ Added the Sieve extprograms plugin to the main Pigeonhole package. It is
still a plugin, but it is now included so that a separate compile is no
longer necessary and distributors are likely to include it. The extprograms
plugin provides Sieve language extensions that allows executing
(administrator-controlled) external programs for message delivery,
message filtering and string manipulation. Refer to
doc/plugins/sieve_extprograms.txt for more information.
+ Added debug message showing Pigeonhole version at initialization. Makes it
very clear that the plugin is properly loaded.
+ Finished implementation of the Sieve include extension. It should now
fully conform to RFC 6609. The main addition is the new :optional tag which
makes the include command ignore missing included scripts without an error.
+ Finished implementation of the Sieve environment extension as much as
possible. Environment items "location", "phase" and "domain" now also
return a usable value.