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