[dovecot/pigeonhole] e04361: lib-sieve: Fixed handling of an early explicit kee...

GitHub noreply at github.com
Sat Jan 14 11:29:32 UTC 2017


  Branch: refs/heads/master-0.4
  Home:   https://github.com/dovecot/pigeonhole
  Commit: e043611e9ac4555ffdde9aab587e791fe0ed05f1
      https://github.com/dovecot/pigeonhole/commit/e043611e9ac4555ffdde9aab587e791fe0ed05f1
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2017-01-14 (Sat, 14 Jan 2017)

  Changed paths:
    M src/lib-sieve/sieve-result.c

  Log Message:
  -----------
  lib-sieve: Fixed handling of an early explicit keep during multiscript execution.

Applies to LDA/LMTP context in general, not only when sieve_before/sieve_after are used.
Action side-effects and the message snapshot would be lost at the final stage where the implicit keep is evaluated.
This happened because the keep action itself is not actually executed, but rather its presence is noted to determine whether more scripts need to be executed.
So, when finally execution of the actual keep action is due, i.e. when there are no more scripts in the sequence, it overrides the explicit keep from the last script.
This didn't take the side-effects and message snapshot into account.


  Commit: d0f4804d87894e23595bb0a2026b7298ffeb9a2d
      https://github.com/dovecot/pigeonhole/commit/d0f4804d87894e23595bb0a2026b7298ffeb9a2d
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2017-01-14 (Sat, 14 Jan 2017)

  Changed paths:
    M src/lib-sieve/sieve-result.c

  Log Message:
  -----------
  lib-sieve: Fixed transaction context passed to finish() method of action object in two cases.

This is not currently used anywhere, so nothing actually broke.
This bug was exposed by the previous commit, causing a compiler error/warning on some compilers.


Compare: https://github.com/dovecot/pigeonhole/compare/3c071a4b6f16...d0f4804d8789


More information about the dovecot-cvs mailing list