Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package dovecot23 for openSUSE:Factory 
checked in at 2021-03-11 20:11:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dovecot23 (Old)
 and      /work/SRC/openSUSE:Factory/.dovecot23.new.2401 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "dovecot23"

Thu Mar 11 20:11:38 2021 rev:38 rq:878317 version:2.3.14

Changes:
--------
--- /work/SRC/openSUSE:Factory/dovecot23/dovecot23.changes      2021-02-07 
15:23:56.662194058 +0100
+++ /work/SRC/openSUSE:Factory/.dovecot23.new.2401/dovecot23.changes    
2021-03-11 20:13:06.872743664 +0100
@@ -1,0 +2,110 @@
+Thu Mar  4 10:28:11 UTC 2021 - Michael Str??der <mich...@stroeder.com>
+
+- update to 2.3.14 and pigeonhole to 0.5.14
+  * removed obsolete fix-timeval_cmp_margin-for-32bit-systems.patch
+
+  Dovecot 2.3.14
+  * Added new aliases for some variables. Usage of the old ones is possible,
+    but discouraged. (These were partially added already to v2.3.13.)
+    See 
https://doc.dovecot.org/configuration_manual/config_file/config_variables/
+    for more information.
+  * Optimize imap/pop3/submission/managesieve proxies to use less CPU at
+    the cost of extra memory usage.
+  * Remove autocreate, expire, snarf and mail-filter plugins.
+  * Remove cydir storage driver.
+  * Remove XZ/LZMA write support. Read support will be removed in future 
release.
+  * doveadm -D: Add timestamps to debug output even when LOG_STDERR_TIMESTAMP
+    environment variable is not set. Timestamp format is taken from
+    log_timestamp setting.
+  * If BROKENCHAR or listescape plugin is used, the escaped folder names
+    may be slightly different from before in some situations. This is
+    unlikely to cause issues, although caching clients may redownload the
+    folders.
+  * imapc: It now enables BROKENCHAR=~ by default to escape remote folder
+    names if necessary. This also means that if there are any '~'
+    characters in the remote folder names, they will be visible as "~7e".
+  * imapc: When using local index files folder names were escaped on
+    filesystem a bit differently. This affects only if there are folder
+    names that actually require escaping, which isn't so common. The old
+    style folders will be automatically deleted from filesystem.
+  * stats: Update exported metrics to be compliant with OpenMetrics standard.
+  + doveadm: Add an optional '-p' parameter to metadata list command. If
+    enabled, "/private", and "/shared" metadata prefixes will be prepended
+    to the keys in the list output.
+  + doveconf: Support environment variables in config files. See
+    
https://doc.dovecot.org/configuration_manual/config_file/config_file_syntax/#environment-variables
+    for more details.
+  + indexer-worker: Change indexer to disconnect from indexer-worker
+    after each request. This allows service indexer-worker's service_count &
+    idle_kill settings to work. These can be used to restart indexer-worker
+    processes once in a while to reduce their memory usage.
+  - auth: "nodelay" with various authentication mechanisms such as apop
+    and digest-md5 crashed AUTH process if authentication failed.
+  - auth: Auth lua script generating an error triggered an assertion
+    failure: Panic: file db-lua.c: line 630 (auth_lua_call_password_verify):
+    assertion failed: (lua_gettop(script->L) == 0).
+  - configure: Fix libunwind detection to work on other than x86_64 systems.
+  - doveadm-server: Process could crash if logging was done outside command
+    handling. For example http-client could have done debug logging
+    afterwards, resulting in either segfault or Panic:
+    file http-client.c: line 642 (http_client_context_close):
+    assertion failed: (cctx->clients_list == NULL).
+  - dsync: Folder name escaping with BROKENCHAR didn't work completely
+    correctly. This especially caused problems with dsync-migrations using
+    imapc where some of the remote folder names may not have been accessible.
+  - dsync: doveadm sync + imapc doesn't always sync all mails when doing
+    an incremental sync (-1), which could lead to mail loss when it's used
+    for migration. This happens only when GUIDs aren't used (i.e.
+    imapc without imapc_features=guid-forced).
+  - fts-tika: When tika server returns error, some mails cause Panic:
+    file message-parser.c: line 802 (message_parser_deinit_from_parts):
+    assertion failed: (ctx->nested_parts_count == 0 || 
i_stream_have_bytes_left(ctx->input))
+  - lib-imap: imapc parsing illegal BODYSTRUCTUREs with NILs could have
+    resulted in crashes. This exposed that Dovecot was wrongly accepting
+    atoms in "nstring" handling. Changed the IMAP parsing to be more
+    strict about this now.
+  - lib-index: If dovecot.index.cache has corrupted message size, fetching
+    BODY/BODYSTRUCTURE may cause assert-crash:
+    Panic: file index-mail.c: line 1140 (index_mail_parse_body_finish):
+    assertion failed: (mail->data.parts != NULL).
+  - lib-index: Minor error handling and race condition fixes related to
+    rotating dovecot.index.log. These didn't usually cause problems,
+    unless the log files were rotated rapidly.
+  - lib-lua: Lua scripts using coroutines or lua libraries using coroutines
+    (e.g., cqueues) panicked.
+  - Message PREVIEW handled whitespace wrong so first space would get
+    eaten from between words.
+  - FTS and message PREVIEW (snippet) parsed HTML &entities case-sensitively.
+  - lib-mail: When max nested MIME parts were reached, IMAP BODYSTRUCTURE
+    was written in a way that may have caused confusion for IMAP clients
+    and also Dovecot itself when parsing it. The truncated part is now
+    written out using application/octet-stream MIME type.
+  - lib-oauth2: HS512 and HS384 JWT token algorithms crash when you try to
+    use them: Panic: file hmac.c: line 26 (hmac_init): assertion failed:
+    (meth->context_size <= MAC_MAX_CONTEXT_SIZE).
+  - event filters: NOT keyword did not have the correct associativity.
+    NOT a AND b were getting parsed as NOT (a AND b) instead of
+    (NOT a) AND b.
+  - Ignore ECONNRESET when closing socket. This avoids logging useless
+    errors on systems like FreeBSD.
+  - event filters: event filter syntax error may lead to Panic:
+    file event-filter.c: line 137 (event_filter_parse): assertion failed:
+    (state.output == NULL)
+  - lib: timeval_cmp_margin() was broken on 32-bit systems. This could
+    potentially have caused HTTP timeouts to be handled incorrectly.
+  - log: instance_name wasn't used as syslog ident by the log process.
+  - master: After a service reached process_limit and client_limit, it
+    could have taken up to 1 second to realize that more client connections
+    became available. During this time client connections could have been
+    unnecessarily rejected and a warning logged:
+    Warning: service(...): process_limit (...) reached, client connections are 
being dropped
+  - stats: Crash would occur when generating openmetrics data for metrics
+    using aggregating functions.
+  - stats: Event filters comparing against empty strings crash the stats
+    process.
+
+  Pigeonhole 0.5.14
+  * IMAP FILTER command: cmd-filter-sieve - Do not allow NIL as
+    script name argument.
+  
+-------------------------------------------------------------------

Old:
----
  dovecot-2.3-pigeonhole-0.5.13.tar.gz
  dovecot-2.3-pigeonhole-0.5.13.tar.gz.sig
  dovecot-2.3.13.tar.gz
  dovecot-2.3.13.tar.gz.sig
  fix-timeval_cmp_margin-for-32bit-systems.patch

New:
----
  dovecot-2.3-pigeonhole-0.5.14.tar.gz
  dovecot-2.3-pigeonhole-0.5.14.tar.gz.sig
  dovecot-2.3.14.tar.gz
  dovecot-2.3.14.tar.gz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ dovecot23.spec ++++++
--- /var/tmp/diff_new_pack.mqgkRs/_old  2021-03-11 20:13:07.620744877 +0100
+++ /var/tmp/diff_new_pack.mqgkRs/_new  2021-03-11 20:13:07.624744884 +0100
@@ -19,11 +19,11 @@
 %global _lto_cflags %{nil}
 
 Name:           dovecot23
-Version:        2.3.13
+Version:        2.3.14
 Release:        0
 %define pkg_name dovecot
-%define dovecot_version 2.3.13
-%define dovecot_pigeonhole_version 0.5.13
+%define dovecot_version 2.3.14
+%define dovecot_pigeonhole_version 0.5.14
 %define dovecot_branch  2.3
 %define dovecot_pigeonhole_source_dir 
%{pkg_name}-%{dovecot_branch}-pigeonhole-%{dovecot_pigeonhole_version}
 %define dovecot_pigeonhole_docdir     %{_docdir}/%{pkg_name}/dovecot-pigeonhole
@@ -132,9 +132,9 @@
 %endif
 Recommends:     %{name}-fts = %{version}
 Recommends:     %{name}-fts-squat = %{version}
-URL:            http://www.dovecot.org
-Source:         
http://www.dovecot.org/releases/%{dovecot_branch}/%{pkg_name}-%{dovecot_version}.tar.gz
-Source1:        
http://pigeonhole.dovecot.org/releases/%{dovecot_branch}/%{dovecot_pigeonhole_source_dir}.tar.gz
+URL:            https://www.dovecot.org
+Source:         
https://www.dovecot.org/releases/%{dovecot_branch}/%{pkg_name}-%{dovecot_version}.tar.gz
+Source1:        
https://pigeonhole.dovecot.org/releases/%{dovecot_branch}/%{dovecot_pigeonhole_source_dir}.tar.gz
 Source2:        dovecot-rpmlintrc
 Source3:        dovecot-2.0.configfiles
 Source4:        dovecot-2.1.configfiles
@@ -143,15 +143,13 @@
 Source7:        dovecot-2.1-pigeonhole.configfiles
 Source8:        dovecot-2.2-pigeonhole.configfiles
 Source9:        dovecot-2.3-pigeonhole.configfiles
-Source10:       
http://www.dovecot.org/releases/%{dovecot_branch}/%{pkg_name}-%{dovecot_version}.tar.gz.sig
-Source11:       
http://pigeonhole.dovecot.org/releases/%{dovecot_branch}/%{dovecot_pigeonhole_source_dir}.tar.gz.sig
+Source10:       
https://www.dovecot.org/releases/%{dovecot_branch}/%{pkg_name}-%{dovecot_version}.tar.gz.sig
+Source11:       
https://pigeonhole.dovecot.org/releases/%{dovecot_branch}/%{dovecot_pigeonhole_source_dir}.tar.gz.sig
 Source12:       dovecot23.keyring
 Patch:          dovecot-2.3.0-dont_use_etc_ssl_certs.patch
 Patch1:         dovecot-2.3.0-better_ssl_defaults.patch
 #               https://github.com/dovecot/core/pull/126
 Patch2:         allow-tls1.3-only.patch
-#               https://github.com/dovecot/core/pull/149
-Patch3:         fix-timeval_cmp_margin-for-32bit-systems.patch
 Summary:        IMAP and POP3 Server Written Primarily with Security in Mind
 License:        BSD-3-Clause AND LGPL-2.1-or-later AND MIT
 Group:          Productivity/Networking/Email/Servers
@@ -332,7 +330,6 @@
 %patch -p1
 %patch1 -p1
 %patch2 -p1
-%patch3 -p1
 gzip -9v ChangeLog
 # Fix plugins dir.
 sed -i 's|#mail_plugin_dir = /usr/lib/dovecot|mail_plugin_dir = 
%{_libdir}/dovecot/modules|' doc/example-config/conf.d/10-mail.conf
@@ -592,9 +589,11 @@
 %{_libdir}/%{pkg_name}/libdovecot-lda.so.*
 %{_libdir}/%{pkg_name}/libdovecot-ldap.so.*
 %{_libdir}/%{pkg_name}/libdovecot-login.so.*
+%{_libdir}/%{pkg_name}/libdovecot-lua.so.*
 %{_libdir}/%{pkg_name}/libdovecot-sieve.so.*
 %{_libdir}/%{pkg_name}/libdovecot-sql.so.*
 %{_libdir}/%{pkg_name}/libdovecot-storage.so.*
+%{_libdir}/%{pkg_name}/libdovecot-storage-lua.so.*
 %if %{with dcrypt_openssl}
 %{_libdir}/%{pkg_name}/libdcrypt_openssl.so
 %endif
@@ -606,11 +605,9 @@
 %{_libdir}/%{pkg_name}/modules/lib02_lazy_expunge_plugin.so
 %{_libdir}/%{pkg_name}/modules/lib05_mail_crypt_acl_plugin.so
 %{_libdir}/%{pkg_name}/modules/lib05_pop3_migration_plugin.so
-%{_libdir}/%{pkg_name}/modules/lib05_snarf_plugin.so
 %{_libdir}/%{pkg_name}/modules/lib10_last_login_plugin.so
 %{_libdir}/%{pkg_name}/modules/lib01_mail_lua_plugin.so
 %{_libdir}/%{pkg_name}/modules/lib10_mail_crypt_plugin.so
-%{_libdir}/%{pkg_name}/modules/lib10_mail_filter_plugin.so
 %{_libdir}/%{pkg_name}/modules/lib10_quota_plugin.so
 %{_libdir}/%{pkg_name}/modules/lib11_trash_plugin.so
 %{_libdir}/%{pkg_name}/modules/lib15_notify_plugin.so
@@ -618,11 +615,9 @@
 %{_libdir}/%{pkg_name}/modules/lib20_mailbox_alias_plugin.so
 %{_libdir}/%{pkg_name}/modules/lib20_notify_status_plugin.so
 %{_libdir}/%{pkg_name}/modules/lib20_charset_alias_plugin.so
-%{_libdir}/%{pkg_name}/modules/lib20_expire_plugin.so
 %{_libdir}/%{pkg_name}/modules/lib20_var_expand_crypt.so
 %{_libdir}/%{pkg_name}/modules/lib20_zlib_plugin.so
 %{_libdir}/%{pkg_name}/modules/lib20_push_notification_plugin.so
-%{_libdir}/%{pkg_name}/modules/lib20_autocreate_plugin.so
 %{_libdir}/%{pkg_name}/modules/lib20_listescape_plugin.so
 %{_libdir}/%{pkg_name}/modules/lib20_quota_clone_plugin.so
 %{_libdir}/%{pkg_name}/modules/lib20_replication_plugin.so
@@ -656,7 +651,6 @@
 %dir %{_libdir}/%{pkg_name}/modules/doveadm
 %{_libdir}/%{pkg_name}/modules/doveadm/libdoveadm_mail_crypt_plugin.so
 %{_libdir}/%{pkg_name}/modules/doveadm/lib10_doveadm_acl_plugin.so
-%{_libdir}/%{pkg_name}/modules/doveadm/lib10_doveadm_expire_plugin.so
 %{_libdir}/%{pkg_name}/modules/doveadm/lib10_doveadm_quota_plugin.so*
 %{_libdir}/%{pkg_name}/modules/doveadm/lib10_doveadm_sieve_plugin.so
 #
@@ -759,8 +753,10 @@
 %{_libdir}/%{pkg_name}/libdovecot-lda.so
 %{_libdir}/%{pkg_name}/libdovecot-ldap.so
 %{_libdir}/%{pkg_name}/libdovecot-login.so
+%{_libdir}/%{pkg_name}/libdovecot-lua.so
 %{_libdir}/%{pkg_name}/libdovecot-sieve.so
 %{_libdir}/%{pkg_name}/libdovecot-sql.so
 %{_libdir}/%{pkg_name}/libdovecot-storage.so
+%{_libdir}/%{pkg_name}/libdovecot-storage-lua.so
 
 %changelog

++++++ dovecot-2.3-pigeonhole-0.5.13.tar.gz -> 
dovecot-2.3-pigeonhole-0.5.14.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.3-pigeonhole-0.5.13/ChangeLog 
new/dovecot-2.3-pigeonhole-0.5.14/ChangeLog
--- old/dovecot-2.3-pigeonhole-0.5.13/ChangeLog 2020-12-22 14:27:47.000000000 
+0100
+++ new/dovecot-2.3-pigeonhole-0.5.14/ChangeLog 2021-03-04 09:39:03.000000000 
+0100
@@ -1,17 +1,67 @@
-2020-12-12 19:47:56 +0200 Aki Tuomi <aki.tu...@open-xchange.com> (cdd19fe3)
+2021-03-02 10:56:54 +0200 Aki Tuomi <aki.tu...@open-xchange.com> (1b5c82b2)
 
-    NEWS: Add news for 0.5.13
+    NEWS: Update news for 0.5.14
+
+
+M      NEWS
+
+2021-02-17 13:30:46 +0200 Aki Tuomi <aki.tu...@open-xchange.com> (151fd340)
+
+    NEWS: Add news for 0.5.14.rc1
 
 
 M      NEWS
 
-2020-11-05 16:03:26 +0200 Aki Tuomi <aki.tu...@open-xchange.com> (f148e171)
+2021-02-04 11:26:59 +0200 Aki Tuomi <aki.tu...@open-xchange.com> (d9903714)
 
-    configure: Update version to 0.5.13
+    configure: Update version to 0.5.14
 
 
 M      configure.ac
 
+2021-01-13 18:05:15 +0100 Stephan Bosch <stephan.bo...@open-xchange.com> 
(821a9516)
+
+    plugins: imap-filter-sieve: cmd-filter-sieve - Avoid using
+    imap_arg_as_nstring() in cmd_filter_sieve_script_parse_value_arg()
+
+    The argument can only be a quoted string here, so imap_arg_as_string() will
+    suffice.
+
+M      src/plugins/imap-filter-sieve/cmd-filter-sieve.c
+
+2021-01-13 17:58:16 +0100 Stephan Bosch <stephan.bo...@open-xchange.com> 
(bba3a530)
+
+    plugins: imap-filter-sieve: cmd-filter-sieve - Do not allow NIL as script
+    name argument
+
+    This was not supposed to be accepted and led to unexpected behavior:
+
+    - FILTER SIEVE PERSONAL NIL was handled as FILTER SIEVE DELIVERY,
+    - FILTER SIEVE GLOBAL NIL caused an internal error.
+
+M      src/plugins/imap-filter-sieve/cmd-filter-sieve.c
+
+2021-01-13 18:12:38 +0100 Stephan Bosch <stephan.bo...@open-xchange.com> 
(58d792cd)
+
+    plugins: imap-fitler-sieve: Reformat cmd-filter-sieve.c
+
+
+M      src/plugins/imap-filter-sieve/cmd-filter-sieve.c
+
+2020-12-12 19:47:56 +0200 Aki Tuomi <aki.tu...@open-xchange.com> (7a9a3219)
+
+    NEWS: Add news for 0.5.13
+
+
+M      NEWS
+
+2020-11-10 11:46:47 +0200 Aki Tuomi <aki.tu...@open-xchange.com> (8e405770)
+
+    m4: dovecot.m4 - Sync with core
+
+
+M      m4/dovecot.m4
+
 2020-06-18 00:28:02 +0200 Stephan Bosch <stephan.bo...@open-xchange.com> 
(a1c1ca78)
 
     lib-sieve: plugins: editheader: Fix infinite loop occurring when header
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.3-pigeonhole-0.5.13/NEWS 
new/dovecot-2.3-pigeonhole-0.5.14/NEWS
--- old/dovecot-2.3-pigeonhole-0.5.13/NEWS      2020-12-22 14:27:36.000000000 
+0100
+++ new/dovecot-2.3-pigeonhole-0.5.14/NEWS      2021-03-04 09:38:51.000000000 
+0100
@@ -1,3 +1,8 @@
+v0.5.14 2021-03-04  Aki Tuomi <aki.tu...@open-xchange.com>
+
+       * IMAP FILTER command: cmd-filter-sieve - Do not allow NIL as
+         script name argument.
+
 v0.5.13 2021-01-04  Aki Tuomi <aki.tu...@open-xchange.com>
 
        - duplicate: The test was handled badly in a multiscript (sieve_before,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.3-pigeonhole-0.5.13/configure 
new/dovecot-2.3-pigeonhole-0.5.14/configure
--- old/dovecot-2.3-pigeonhole-0.5.13/configure 2020-12-22 14:27:41.000000000 
+0100
+++ new/dovecot-2.3-pigeonhole-0.5.14/configure 2021-03-04 09:38:56.000000000 
+0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Pigeonhole 0.5.13.
+# Generated by GNU Autoconf 2.69 for Pigeonhole 0.5.14.
 #
 # Report bugs to <dove...@dovecot.org>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='Pigeonhole'
 PACKAGE_TARNAME='dovecot-2.3-pigeonhole'
-PACKAGE_VERSION='0.5.13'
-PACKAGE_STRING='Pigeonhole 0.5.13'
+PACKAGE_VERSION='0.5.14'
+PACKAGE_STRING='Pigeonhole 0.5.14'
 PACKAGE_BUGREPORT='dove...@dovecot.org'
 PACKAGE_URL=''
 
@@ -849,6 +849,7 @@
 with_dovecot_install_dirs
 enable_hardening
 with_retpoline
+enable_ubsan
 with_moduledir
 with_unfinished_features
 with_docs
@@ -1415,7 +1416,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures Pigeonhole 0.5.13 to adapt to many kinds of systems.
+\`configure' configures Pigeonhole 0.5.14 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1487,7 +1488,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Pigeonhole 0.5.13:";;
+     short | recursive ) echo "Configuration of Pigeonhole 0.5.14:";;
    esac
   cat <<\_ACEOF
 
@@ -1510,6 +1511,7 @@
                           optimize for fast installation [default=yes]
   --disable-libtool-lock  avoid locking (might break parallel builds)
   --enable-hardening=yes  Enable various hardenings (default: yes)
+  --enable-ubsan          Enable undefined behaviour sanitizes (default=no)
 
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
@@ -1527,7 +1529,7 @@
                           Use install directories configured for Dovecot
                           (default)
   --with-retpoline=<choice>
-                          Retpoline migitation choice (default: keep)
+                          Retpoline mitigation choice (default: keep)
   --with-moduledir=DIR    Base directory for dynamically loadable modules
   --with-unfinished-features
                           Build unfinished new features/extensions
@@ -1614,7 +1616,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Pigeonhole configure 0.5.13
+Pigeonhole configure 0.5.14
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1983,7 +1985,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by Pigeonhole $as_me 0.5.13, which was
+It was created by Pigeonhole $as_me 0.5.14, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2333,7 +2335,7 @@
 
 
 cat >>confdefs.h <<_ACEOF
-#define PIGEONHOLE_ABI_VERSION "0.5.ABIv13($PACKAGE_VERSION)"
+#define PIGEONHOLE_ABI_VERSION "0.5.ABIv14($PACKAGE_VERSION)"
 _ACEOF
 
 
@@ -2873,7 +2875,7 @@
 
 # Define the identity of the package.
  PACKAGE='dovecot-2.3-pigeonhole'
- VERSION='0.5.13'
+ VERSION='0.5.14'
 
 
 # Some tools Automake needs.
@@ -12447,15 +12449,6 @@
 
 
 fi
-  if test "$have_clang" = "yes"; then :
-
-        if test "$want_devel_checks" = "yes"; then :
-
-                  :
-
-fi
-
-fi
 
 
         # Check whether --enable-hardening was given.
@@ -12841,6 +12834,277 @@
 
 
 
+  # Check whether --enable-ubsan was given.
+if test "${enable_ubsan+set}" = set; then :
+  enableval=$enable_ubsan; want_ubsan=yes
+else
+  want_ubsan=no
+fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we want undefined 
behaviour sanitizer" >&5
+$as_echo_n "checking whether we want undefined behaviour sanitizer... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $want_ubsan" >&5
+$as_echo "$want_ubsan" >&6; }
+  if test x$want_ubsan = xyes; then :
+
+     san_flags=""
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler 
handles -fsanitize=undefined" >&5
+$as_echo_n "checking whether C compiler handles -fsanitize=undefined... " >&6; 
}
+if ${gl_cv_warn_c__fsanitize_undefined+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  gl_save_compiler_FLAGS="$CFLAGS"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -fsanitize=undefined"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_warn_c__fsanitize_undefined=yes
+else
+  gl_cv_warn_c__fsanitize_undefined=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 
$gl_cv_warn_c__fsanitize_undefined" >&5
+$as_echo "$gl_cv_warn_c__fsanitize_undefined" >&6; }
+if test "x$gl_cv_warn_c__fsanitize_undefined" = xyes; then :
+
+             san_flags="$san_flags -fsanitize=undefined"
+
+$as_echo "#define HAVE_FSANITIZE_UNDEFINED 1" >>confdefs.h
+
+
+fi
+
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler 
handles -fno-sanitize=nonnull-attribute" >&5
+$as_echo_n "checking whether C compiler handles 
-fno-sanitize=nonnull-attribute... " >&6; }
+if ${gl_cv_warn_c__fno_sanitize_nonnull_attribute+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  gl_save_compiler_FLAGS="$CFLAGS"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors 
-fno-sanitize=nonnull-attribute"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_warn_c__fno_sanitize_nonnull_attribute=yes
+else
+  gl_cv_warn_c__fno_sanitize_nonnull_attribute=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 
$gl_cv_warn_c__fno_sanitize_nonnull_attribute" >&5
+$as_echo "$gl_cv_warn_c__fno_sanitize_nonnull_attribute" >&6; }
+if test "x$gl_cv_warn_c__fno_sanitize_nonnull_attribute" = xyes; then :
+
+             san_flags="$san_flags -fno-sanitize=nonnull-attribute"
+
+$as_echo "#define HAVE_FNO_SANITIZE_NONNULL_ATTRIBUTE 1" >>confdefs.h
+
+
+fi
+
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler 
handles -fsanitize=implicit-integer-truncation" >&5
+$as_echo_n "checking whether C compiler handles 
-fsanitize=implicit-integer-truncation... " >&6; }
+if ${gl_cv_warn_c__fsanitize_implicit_integer_truncation+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  gl_save_compiler_FLAGS="$CFLAGS"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors 
-fsanitize=implicit-integer-truncation"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_warn_c__fsanitize_implicit_integer_truncation=yes
+else
+  gl_cv_warn_c__fsanitize_implicit_integer_truncation=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 
$gl_cv_warn_c__fsanitize_implicit_integer_truncation" >&5
+$as_echo "$gl_cv_warn_c__fsanitize_implicit_integer_truncation" >&6; }
+if test "x$gl_cv_warn_c__fsanitize_implicit_integer_truncation" = xyes; then :
+
+             san_flags="$san_flags -fsanitize=implicit-integer-truncation"
+
+$as_echo "#define HAVE_FSANITIZE_IMPLICIT_INTEGER_TRUNCATION 1" >>confdefs.h
+
+
+fi
+
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler 
handles -fsanitize=local-bounds" >&5
+$as_echo_n "checking whether C compiler handles -fsanitize=local-bounds... " 
>&6; }
+if ${gl_cv_warn_c__fsanitize_local_bounds+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  gl_save_compiler_FLAGS="$CFLAGS"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors 
-fsanitize=local-bounds"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_warn_c__fsanitize_local_bounds=yes
+else
+  gl_cv_warn_c__fsanitize_local_bounds=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 
$gl_cv_warn_c__fsanitize_local_bounds" >&5
+$as_echo "$gl_cv_warn_c__fsanitize_local_bounds" >&6; }
+if test "x$gl_cv_warn_c__fsanitize_local_bounds" = xyes; then :
+
+             san_flags="$san_flags -fsanitize=local-bounds"
+
+$as_echo "#define HAVE_FSANITIZE_LOCAL_BOUNDS 1" >>confdefs.h
+
+
+fi
+
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler 
handles -fsanitize=integer" >&5
+$as_echo_n "checking whether C compiler handles -fsanitize=integer... " >&6; }
+if ${gl_cv_warn_c__fsanitize_integer+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  gl_save_compiler_FLAGS="$CFLAGS"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -fsanitize=integer"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_warn_c__fsanitize_integer=yes
+else
+  gl_cv_warn_c__fsanitize_integer=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 
$gl_cv_warn_c__fsanitize_integer" >&5
+$as_echo "$gl_cv_warn_c__fsanitize_integer" >&6; }
+if test "x$gl_cv_warn_c__fsanitize_integer" = xyes; then :
+
+             san_flags="$san_flags -fsanitize=integer"
+
+$as_echo "#define HAVE_FSANITIZE_INTEGER 1" >>confdefs.h
+
+
+fi
+
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler 
handles -fsanitize=nullability" >&5
+$as_echo_n "checking whether C compiler handles -fsanitize=nullability... " 
>&6; }
+if ${gl_cv_warn_c__fsanitize_nullability+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  gl_save_compiler_FLAGS="$CFLAGS"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -fsanitize=nullability"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_warn_c__fsanitize_nullability=yes
+else
+  gl_cv_warn_c__fsanitize_nullability=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 
$gl_cv_warn_c__fsanitize_nullability" >&5
+$as_echo "$gl_cv_warn_c__fsanitize_nullability" >&6; }
+if test "x$gl_cv_warn_c__fsanitize_nullability" = xyes; then :
+
+             san_flags="$san_flags -fsanitize=nullability"
+
+$as_echo "#define HAVE_FSANITIZE_NULLABILITY 1" >>confdefs.h
+
+
+fi
+
+     if test "$san_flags" != "" ; then :
+
+       EXTRA_CFLAGS="$EXTRA_CFLAGS $san_flags -U_FORTIFY_SOURCE -g -ggdb3 -O0 
-fno-omit-frame-pointer"
+
+$as_echo "#define HAVE_UNDEFINED_SANITIZER 1" >>confdefs.h
+
+
+else
+
+       as_fn_error $? "No undefined sanitizer support in your compiler" 
"$LINENO" 5
+
+fi
+     san_flags=""
+
+fi
+
+
 
 
 
@@ -12965,9 +13229,9 @@
   trap "rm -f \$test_out" 0 1 2 3 15
   supp_path="\$top_srcdir/run-test-valgrind.supp"
   if test -r "\$supp_path"; then
-    valgrind -q \$trace_children --leak-check=full --gen-suppressions=all 
--suppressions="\$supp_path" --log-file=\$test_out \$noundef \$*
+    valgrind -q \$trace_children --error-exitcode=213 --leak-check=full 
--gen-suppressions=all --suppressions="\$supp_path" --log-file=\$test_out 
\$noundef \$*
   else
-    valgrind -q \$trace_children --leak-check=full --gen-suppressions=all 
--log-file=\$test_out \$noundef \$*
+    valgrind -q \$trace_children --error-exitcode=213 --leak-check=full 
--gen-suppressions=all --log-file=\$test_out \$noundef \$*
   fi
   ret=\$?
   if test -s \$test_out; then
@@ -13968,7 +14232,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by Pigeonhole $as_me 0.5.13, which was
+This file was extended by Pigeonhole $as_me 0.5.14, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -14034,7 +14298,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-Pigeonhole config.status 0.5.13
+Pigeonhole config.status 0.5.14
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.3-pigeonhole-0.5.13/configure.ac 
new/dovecot-2.3-pigeonhole-0.5.14/configure.ac
--- old/dovecot-2.3-pigeonhole-0.5.13/configure.ac      2020-12-22 
14:27:36.000000000 +0100
+++ new/dovecot-2.3-pigeonhole-0.5.14/configure.ac      2021-03-04 
09:38:51.000000000 +0100
@@ -2,8 +2,8 @@
 
 # Be sure to update ABI version also if anything changes that might require
 # recompiling plugins. Most importantly that means if any structs are changed.
-AC_INIT([Pigeonhole], [0.5.13], [dove...@dovecot.org], 
[dovecot-2.3-pigeonhole])
-AC_DEFINE_UNQUOTED([PIGEONHOLE_ABI_VERSION], "0.5.ABIv13($PACKAGE_VERSION)", 
[Pigeonhole ABI version])
+AC_INIT([Pigeonhole], [0.5.14], [dove...@dovecot.org], 
[dovecot-2.3-pigeonhole])
+AC_DEFINE_UNQUOTED([PIGEONHOLE_ABI_VERSION], "0.5.ABIv14($PACKAGE_VERSION)", 
[Pigeonhole ABI version])
 
 AC_CONFIG_AUX_DIR([.])
 AC_CONFIG_SRCDIR([src])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.3-pigeonhole-0.5.13/dummy-config.h.in 
new/dovecot-2.3-pigeonhole-0.5.14/dummy-config.h.in
--- old/dovecot-2.3-pigeonhole-0.5.13/dummy-config.h.in 2020-12-22 
14:27:41.000000000 +0100
+++ new/dovecot-2.3-pigeonhole-0.5.14/dummy-config.h.in 2021-03-04 
09:38:56.000000000 +0100
@@ -3,6 +3,24 @@
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #undef HAVE_DLFCN_H
 
+/* Define if your compiler has -fno-sanitize=nonnull-attribute */
+#undef HAVE_FNO_SANITIZE_NONNULL_ATTRIBUTE
+
+/* Define if your compiler has -fsanitize=implicit-integer-truncation */
+#undef HAVE_FSANITIZE_IMPLICIT_INTEGER_TRUNCATION
+
+/* Define if your compiler has -fsanitize=integer */
+#undef HAVE_FSANITIZE_INTEGER
+
+/* Define if your compiler has -fsanitize=local-bounds */
+#undef HAVE_FSANITIZE_LOCAL_BOUNDS
+
+/* Define if your compiler has -fsanitize=nullability */
+#undef HAVE_FSANITIZE_NULLABILITY
+
+/* Define if your compiler has -fsanitize=undefined */
+#undef HAVE_FSANITIZE_UNDEFINED
+
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
@@ -36,6 +54,9 @@
 /* Define to 1 if you have the <sys/types.h> header file. */
 #undef HAVE_SYS_TYPES_H
 
+/* Define if your compiler supports undefined sanitizers */
+#undef HAVE_UNDEFINED_SANITIZER
+
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.3-pigeonhole-0.5.13/m4/dovecot.m4 
new/dovecot-2.3-pigeonhole-0.5.14/m4/dovecot.m4
--- old/dovecot-2.3-pigeonhole-0.5.13/m4/dovecot.m4     2020-12-22 
14:27:36.000000000 +0100
+++ new/dovecot-2.3-pigeonhole-0.5.14/m4/dovecot.m4     2021-03-04 
09:38:51.000000000 +0100
@@ -1,12 +1,12 @@
 dnl dovecot.m4 - Check presence of dovecot -*-Autoconf-*-
 dnl
-dnl   Copyright (C) 2010 Dennis Schridded
+dnl   Copyright (C) 2010 Dennis Schridde
 dnl
 dnl This file is free software; the authors give
 dnl unlimited permission to copy and/or distribute it, with or without
 dnl modifications, as long as this notice is preserved.
 
-# serial 30
+# serial 32
 
 dnl
 dnl Check for support for D_FORTIFY_SOURCE=2
@@ -69,14 +69,6 @@
         ])
 
   ])
-  AS_IF([test "$have_clang" = "yes"], [
-    dnl clang specific options
-    AS_IF([test "$want_devel_checks" = "yes"], [
-      dnl FIXME: enable once md[45], sha[12] can be compiled without
-      dnl CFLAGS="$CFLAGS -fsanitize=integer,undefined -ftrapv"
-      :
-    ])
-  ])
 ])
 
 AC_DEFUN([AC_LD_WHOLE_ARCHIVE], [
@@ -197,7 +189,7 @@
 
 AC_DEFUN([AC_CC_RETPOLINE],[
     AC_ARG_WITH(retpoline,
-       AS_HELP_STRING([--with-retpoline=<choice>], [Retpoline migitation 
choice (default: keep)]),
+       AS_HELP_STRING([--with-retpoline=<choice>], [Retpoline mitigation 
choice (default: keep)]),
             with_retpoline=$withval,
             with_retpoline=keep)
 
@@ -299,9 +291,9 @@
   trap "rm -f \$test_out" 0 1 2 3 15
   supp_path="\$top_srcdir/run-test-valgrind.supp"
   if test -r "\$supp_path"; then
-    valgrind -q \$trace_children --leak-check=full --gen-suppressions=all 
--suppressions="\$supp_path" --log-file=\$test_out \$noundef \$[*]
+    valgrind -q \$trace_children --error-exitcode=213 --leak-check=full 
--gen-suppressions=all --suppressions="\$supp_path" --log-file=\$test_out 
\$noundef \$[*]
   else
-    valgrind -q \$trace_children --leak-check=full --gen-suppressions=all 
--log-file=\$test_out \$noundef \$[*]
+    valgrind -q \$trace_children --error-exitcode=213 --leak-check=full 
--gen-suppressions=all --log-file=\$test_out \$noundef \$[*]
   fi
   ret=\$?
   if test -s \$test_out; then
@@ -340,6 +332,7 @@
        AC_CC_D_FORTIFY_SOURCE
        AC_CC_RETPOLINE
        AC_LD_RELRO
+       DOVECOT_WANT_UBSAN
 ])
 
 AC_DEFUN([DC_DOVECOT],[
@@ -549,3 +542,45 @@
   ])
   AC_MSG_RESULT([$have_clang])
 ])
+
+AC_DEFUN([DOVECOT_WANT_UBSAN], [
+  AC_ARG_ENABLE(ubsan,
+    AS_HELP_STRING([--enable-ubsan], [Enable undefined behaviour sanitizes 
(default=no)]),
+                   [want_ubsan=yes], [want_ubsan=no])
+  AC_MSG_CHECKING([whether we want undefined behaviour sanitizer])
+  AC_MSG_RESULT([$want_ubsan])
+  AS_IF([test x$want_ubsan = xyes], [
+     san_flags=""
+     gl_COMPILER_OPTION_IF([-fsanitize=undefined], [
+             san_flags="$san_flags -fsanitize=undefined"
+             AC_DEFINE([HAVE_FSANITIZE_UNDEFINED], [1], [Define if your 
compiler has -fsanitize=undefined])
+     ])
+     gl_COMPILER_OPTION_IF([-fno-sanitize=nonnull-attribute], [
+             san_flags="$san_flags -fno-sanitize=nonnull-attribute"
+             AC_DEFINE([HAVE_FNO_SANITIZE_NONNULL_ATTRIBUTE], [1], [Define if 
your compiler has -fno-sanitize=nonnull-attribute])
+     ])
+     gl_COMPILER_OPTION_IF([-fsanitize=implicit-integer-truncation], [
+             san_flags="$san_flags -fsanitize=implicit-integer-truncation"
+             AC_DEFINE([HAVE_FSANITIZE_IMPLICIT_INTEGER_TRUNCATION], [1], 
[Define if your compiler has -fsanitize=implicit-integer-truncation])
+     ])
+     gl_COMPILER_OPTION_IF([-fsanitize=local-bounds], [
+             san_flags="$san_flags -fsanitize=local-bounds"
+             AC_DEFINE([HAVE_FSANITIZE_LOCAL_BOUNDS], [1], [Define if your 
compiler has -fsanitize=local-bounds])
+     ])
+     gl_COMPILER_OPTION_IF([-fsanitize=integer], [
+             san_flags="$san_flags -fsanitize=integer"
+             AC_DEFINE([HAVE_FSANITIZE_INTEGER], [1], [Define if your compiler 
has -fsanitize=integer])
+     ])
+     gl_COMPILER_OPTION_IF([-fsanitize=nullability], [
+             san_flags="$san_flags -fsanitize=nullability"
+             AC_DEFINE([HAVE_FSANITIZE_NULLABILITY], [1], [Define if your 
compiler has -fsanitize=nullability])
+     ])
+     AS_IF([test "$san_flags" != "" ], [
+       EXTRA_CFLAGS="$EXTRA_CFLAGS $san_flags -U_FORTIFY_SOURCE -g -ggdb3 -O0 
-fno-omit-frame-pointer"
+       AC_DEFINE([HAVE_UNDEFINED_SANITIZER], [1], [Define if your compiler 
supports undefined sanitizers])
+     ], [
+       AC_MSG_ERROR([No undefined sanitizer support in your compiler])
+     ])
+     san_flags=""
+  ])
+])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.3-pigeonhole-0.5.13/pigeonhole-version.h 
new/dovecot-2.3-pigeonhole-0.5.14/pigeonhole-version.h
--- old/dovecot-2.3-pigeonhole-0.5.13/pigeonhole-version.h      2020-12-22 
14:27:47.000000000 +0100
+++ new/dovecot-2.3-pigeonhole-0.5.14/pigeonhole-version.h      2021-03-04 
09:39:03.000000000 +0100
@@ -1,6 +1,6 @@
 #ifndef PIGEONHOLE_VERSION_H
 #define PIGEONHOLE_VERSION_H
 
-#define PIGEONHOLE_VERSION_FULL PIGEONHOLE_VERSION" (cdd19fe3)"
+#define PIGEONHOLE_VERSION_FULL PIGEONHOLE_VERSION" (1b5c82b2)"
 
 #endif /* PIGEONHOLE_VERSION_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dovecot-2.3-pigeonhole-0.5.13/src/plugins/imap-filter-sieve/cmd-filter-sieve.c
 
new/dovecot-2.3-pigeonhole-0.5.14/src/plugins/imap-filter-sieve/cmd-filter-sieve.c
--- 
old/dovecot-2.3-pigeonhole-0.5.13/src/plugins/imap-filter-sieve/cmd-filter-sieve.c
  2020-12-22 14:27:36.000000000 +0100
+++ 
new/dovecot-2.3-pigeonhole-0.5.14/src/plugins/imap-filter-sieve/cmd-filter-sieve.c
  2021-03-04 09:38:51.000000000 +0100
@@ -12,8 +12,7 @@
 
 #define FILTER_MAX_INMEM_SIZE (1024*128)
 
-static int
-cmd_filter_sieve_compile_script(struct imap_filter_context *ctx)
+static int cmd_filter_sieve_compile_script(struct imap_filter_context *ctx)
 {
        struct client_command_context *cmd = ctx->cmd;
        struct imap_filter_sieve_context *sctx = ctx->sieve;
@@ -43,8 +42,7 @@
        return 0;
 }
 
-static bool
-cmd_filter_sieve_delivery(struct client_command_context *cmd)
+static bool cmd_filter_sieve_delivery(struct client_command_context *cmd)
 {
        struct imap_filter_context *ctx = cmd->context;
        struct client *client = cmd->client;
@@ -62,8 +60,8 @@
        ret = imap_filter_sieve_open_personal(sctx, NULL,
                                              &error, &error_string);
        if (ret < 0) {
-               client_send_tagline(cmd,
-                       imap_get_error_string(cmd, error_string, error));
+               client_send_tagline(
+                       cmd, imap_get_error_string(cmd, error_string, error));
                imap_filter_deinit(ctx);
                return TRUE;
        }
@@ -110,18 +108,18 @@
        case IMAP_ARG_EOL:
                client_send_command_error(ctx->cmd, "Script name missing");
                return -1;
+       case IMAP_ARG_NIL:
        case IMAP_ARG_LIST:
-               client_send_command_error(ctx->cmd,
-                         "Script name must be a string");
+               client_send_command_error(
+                       ctx->cmd, "Script name must be an atom or a string");
                return -1;
-       case IMAP_ARG_NIL:
        case IMAP_ARG_ATOM:
        case IMAP_ARG_STRING:
-               /* we have the value already */
+               /* We have the value already */
                if (ctx->failed)
                        return 1;
                ctx->script_name = p_strdup(cmd->pool,
-                                           imap_arg_as_nstring(&args[0]));
+                                           imap_arg_as_astring(&args[0]));
                break;
        case IMAP_ARG_LITERAL:
        case IMAP_ARG_LITERAL_SIZE:
@@ -146,10 +144,10 @@
                return TRUE;
        }
 
-       if ((ret=cmd_filter_sieve_script_parse_name_arg(ctx)) == 0)
+       if ((ret = cmd_filter_sieve_script_parse_name_arg(ctx)) == 0)
                return FALSE;
        if (ret < 0) {
-               /* already sent the error to client */ ;
+               /* Already sent the error to client */
                imap_filter_deinit(ctx);
                return TRUE;
        }
@@ -168,8 +166,8 @@
                i_unreached();
        }
        if (ret < 0) {
-               client_send_tagline(cmd,
-                       imap_get_error_string(cmd, error_string, error));
+               client_send_tagline(
+                       cmd, imap_get_error_string(cmd, error_string, error));
                imap_filter_deinit(ctx);
                return TRUE;
        }
@@ -195,8 +193,7 @@
        (void)cmd_filter_sieve_compile_script(ctx);
 }
 
-static int
-cmd_filter_sieve_script_read_stream(struct imap_filter_context *ctx)
+static int cmd_filter_sieve_script_read_stream(struct imap_filter_context *ctx)
 {
        struct istream *input = ctx->script_input;
        const unsigned char *data;
@@ -209,11 +206,11 @@
                return 0;
 
        if (input->v_offset != ctx->script_len) {
-               /* client disconnected */
+               /* Client disconnected */
                i_assert(input->eof);
                return -1;
        }
-       /* finished reading the value */
+       /* Finished reading the value */
        i_stream_seek(input, 0);
 
        if (ctx->failed) {
@@ -264,13 +261,13 @@
        case IMAP_ARG_ATOM:
        case IMAP_ARG_LIST:
                client_send_command_error(ctx->cmd,
-                         "Script value must be a string");
+                                         "Script value must be a string");
                return -1;
        case IMAP_ARG_STRING:
-               /* we have the value already */
+               /* We have the value already */
                if (ctx->failed)
                        return 1;
-               value = imap_arg_as_nstring(&args[0]);
+               value = imap_arg_as_astring(&args[0]);
                input = i_stream_create_from_data(value, strlen(value));
                cmd_filter_sieve_compile_input(ctx, input);
                i_stream_unref(&input);
@@ -279,7 +276,7 @@
                o_stream_nsend(ctx->cmd->client->output, "+ OK\r\n", 6);
                o_stream_uncork(ctx->cmd->client->output);
                o_stream_cork(ctx->cmd->client->output);
-               /* fall through */
+               /* Fall through */
        case IMAP_ARG_LITERAL_SIZE_NONSYNC:
                ctx->script_len = imap_arg_as_literal_size(&args[0]);
 
@@ -315,15 +312,15 @@
        }
 
        if (ctx->script_input != NULL) {
-               if ((ret=cmd_filter_sieve_script_read_stream(ctx)) == 0)
+               if ((ret = cmd_filter_sieve_script_read_stream(ctx)) == 0)
                        return FALSE;
        } else {
-               if ((ret=cmd_filter_sieve_script_parse_value_arg(ctx)) == 0)
+               if ((ret = cmd_filter_sieve_script_parse_value_arg(ctx)) == 0)
                        return FALSE;
        }
 
        if (ret < 0) {
-               /* already sent the error to client */ ;
+               /* Already sent the error to client */ ;
                imap_filter_deinit(ctx);
                return TRUE;
        } else if (ctx->compile_failure) {
@@ -352,13 +349,13 @@
 
        /* sieve-type */
        if (IMAP_ARG_IS_EOL(args)) {
-               client_send_command_error(cmd,
-                       "Missing SIEVE filter sub-type.");
+               client_send_command_error(
+                       cmd, "Missing SIEVE filter sub-type.");
                return TRUE;
        }
        if (!imap_arg_get_atom(args, &sieve_type)) {
-               client_send_command_error(cmd,
-                       "SIEVE filter sub-type is not an atom.");
+               client_send_command_error(
+                       cmd, "SIEVE filter sub-type is not an atom.");
                return TRUE;
        }
        if (strcasecmp(sieve_type, "DELIVERY") == 0) {
@@ -378,7 +375,7 @@
 
        ctx->sieve = imap_filter_sieve_context_create(ctx, type);
 
-       /* we support large scripts, so read the values from client
+       /* We support large scripts, so read the values from client
           asynchronously the same way as APPEND does. */
        client->input_lock = cmd;
        ctx->parser = imap_parser_create(client->input, client->output,

++++++ dovecot-2.3-pigeonhole-0.5.13.tar.gz -> dovecot-2.3.14.tar.gz ++++++
/work/SRC/openSUSE:Factory/dovecot23/dovecot-2.3-pigeonhole-0.5.13.tar.gz 
/work/SRC/openSUSE:Factory/.dovecot23.new.2401/dovecot-2.3.14.tar.gz differ: 
char 5, line 1

Reply via email to