[dovecot/core] 8ac67b: lib-lda: smtp-client: Make sure only the first err...

GitHub noreply at github.com
Sat Mar 4 09:00:09 UTC 2017


  Branch: refs/heads/master
  Home:   https://github.com/dovecot/core
  Commit: 8ac67bc3b77575484aa7c9f4eebcb5ee06589382
      https://github.com/dovecot/core/commit/8ac67bc3b77575484aa7c9f4eebcb5ee06589382
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2017-03-04 (Sat, 04 Mar 2017)

  Changed paths:
    M src/lib-lda/smtp-client.c

  Log Message:
  -----------
  lib-lda: smtp-client: Make sure only the first error determines the tempfail status.

The client is supposed to stop running the moment the first error occurs. However, there is a (very unlikely) possiblity that the encapsulated LMTP client issues both an RCPT and DATA error callback in sequence.
In that case, the second callback should not override the tempfail status of the first (the second likely is a tempfail).
If the server disconnects right after failing the last of at least two recipients, the lmtp-client would issue a DATA callback with a disconnection error.
The disconnect error would set the client->tempfail flag, which caused smtp_client_deinit*() to always return -1 in this scenario.


  Commit: e422d45a7853cb4ae08020df1526b00ba8e6119c
      https://github.com/dovecot/core/commit/e422d45a7853cb4ae08020df1526b00ba8e6119c
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2017-03-04 (Sat, 04 Mar 2017)

  Changed paths:
    M src/lib-smtp/lmtp-client.c

  Log Message:
  -----------
  lib-smtp: lmtp-client: Fixed bug in timeout handling.

The timeout was erroneously stopped when lmtp_client_send() was invoked before a connection was established.
Once the connection finally got established, the timeout was removed.
This would cause the client to wait indefinitely.


  Commit: 17e89642b6815b5a3e3256d21dff9b9825ec58a6
      https://github.com/dovecot/core/commit/17e89642b6815b5a3e3256d21dff9b9825ec58a6
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2017-03-04 (Sat, 04 Mar 2017)

  Changed paths:
    M src/lib-lda/smtp-client.c

  Log Message:
  -----------
  lib-lda: smtp-client: Fixed cleanup of LMTP client at end of transaction.

It was not deinitialized, causing a memory leak.


  Commit: cb12dd3a1da1fac17484e36963554f538bcd3683
      https://github.com/dovecot/core/commit/cb12dd3a1da1fac17484e36963554f538bcd3683
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2017-03-04 (Sat, 04 Mar 2017)

  Changed paths:
    M src/lib-lda/smtp-client.c

  Log Message:
  -----------
  lib-lda: smtp-client: Fixed memory leak of the error message string.


Compare: https://github.com/dovecot/core/compare/2461ec3b9c97...cb12dd3a1da1


More information about the dovecot-cvs mailing list