[dovecot/core] ec8dc9: lib/macros.h - protect old compilers from use of m...

GitHub noreply at github.com
Thu Dec 8 18:00:13 UTC 2016


  Branch: refs/heads/master-2.2
  Home:   https://github.com/dovecot/core
  Commit: ec8dc91f846ee3be7927761b66fcf8fcc7d8cb91
      https://github.com/dovecot/core/commit/ec8dc91f846ee3be7927761b66fcf8fcc7d8cb91
  Author: Phil Carmody <phil at dovecot.fi>
  Date:   2016-12-08 (Thu, 08 Dec 2016)

  Changed paths:
    M src/lib/macros.h

  Log Message:
  -----------
  lib/macros.h - protect old compilers from use of modern features

no_sanitize(integer) is not in 3.5 (debian stable's version), but is
documented in 3.9. Exactly when it appeared isn't immediately obvious.

Signed-off-by: Phil Carmody <phil at dovecot.fi>


  Commit: 66cbd09b78f9e63b06ec8048c4611972d3899456
      https://github.com/dovecot/core/commit/66cbd09b78f9e63b06ec8048c4611972d3899456
  Author: Phil Carmody <phil at dovecot.fi>
  Date:   2016-12-08 (Thu, 08 Dec 2016)

  Changed paths:
    M src/plugins/mail-crypt/doveadm-mail-crypt.c

  Log Message:
  -----------
  plugins: mail-crypt - fix static analysis pedantry

Clang cannot see that ret is -1, 0, or 1 upon assigment, and therefore
-1 or 0 upon entry into the if block. Therefore it considers ret==0
not to be a tautology if ret!=-1, and thus falsifiable. It concludes
that bad things can later happen.

The easiest way to persuade it otherwise and make it clear to a human
that things are sane is to make the first error check to be for any
negative ret value, which forces the else path to explicitly imply
ret==0, which means that clause can also be removed. Just removing the
ret==0 doesn't make it so clear to the human that there's no third case.

The final change is simply to mimic the ret==-1 to ret<0 change earlier.

clang's error message:

doveadm-mail-crypt.c:290:14: error: variable 'pubid' is used uninitialized whenever '&&' condition is false [-Werror,-Wsometimes-uninitialized]
  } else if (ret == 0 &&
       ^~~~~~~~
doveadm-mail-crypt.c:304:35: note: uninitialized use occurs here
   res->id = p_strdup(_ctx->pool, pubid);
                            ^~~~~
doveadm-mail-crypt.c:290:14: note: remove the '&&' if its condition is always true
  } else if (ret == 0 &&
       ^~~~~~~~~~~

Signed-off-by: Phil Carmody <phil at dovecot.fi>


  Commit: 6ea072d979b3acd6725874e1c5e658847c831fb8
      https://github.com/dovecot/core/commit/6ea072d979b3acd6725874e1c5e658847c831fb8
  Author: Paul Howarth <paul at city-fan.org>
  Date:   2016-12-08 (Thu, 08 Dec 2016)

  Changed paths:
    M configure.ac

  Log Message:
  -----------
  configure: Fix HAVE_MYSQL_SSL_CIPHER check


  Commit: a2e65fe08b86c507ec25d8a0addfba1d51aca0d0
      https://github.com/dovecot/core/commit/a2e65fe08b86c507ec25d8a0addfba1d51aca0d0
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-12-08 (Thu, 08 Dec 2016)

  Changed paths:
    M src/lib-sql/driver-cassandra.c

  Log Message:
  -----------
  cassandra: Treat "Request timed out" also as SQL_RESULT_ERROR_TYPE_WRITE_UNCERTAIN

CASS_ERROR_SERVER_WRITE_TIMEOUT is "Write timeout" as reported by Cassandra
server, while CASS_ERROR_LIB_REQUEST_TIMED_OUT is timeout as reported by the
Cassandra library.


  Commit: b7a0844fb8dffbf7f1dd0b5c6d30c22ff8cb6bec
      https://github.com/dovecot/core/commit/b7a0844fb8dffbf7f1dd0b5c6d30c22ff8cb6bec
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-12-08 (Thu, 08 Dec 2016)

  Changed paths:
    M src/lib/seq-range-array.c
    M src/lib/test-seq-range-array.c

  Log Message:
  -----------
  lib: Fix seq_range_array_invert() when input contains 2^32-1

This caused next_min_seq to be wrapped to 0, which was handled wrong later
on.

Fixes:
Panic: file mail-index-map.c: line 549 (mail_index_map_lookup_seq_range): assertion failed: (first_uid > 0)


  Commit: 27128a3faaaf4de27a64eba233490fb9f45827ff
      https://github.com/dovecot/core/commit/27128a3faaaf4de27a64eba233490fb9f45827ff
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-12-08 (Thu, 08 Dec 2016)

  Changed paths:
    M src/lib/seq-range-array.h

  Log Message:
  -----------
  lib: Comment seq_range_array_invert() that its values must be within min_seq..max_seq


  Commit: 98ac5eeade92dafee0bd2b186fafa868474976af
      https://github.com/dovecot/core/commit/98ac5eeade92dafee0bd2b186fafa868474976af
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2016-12-08 (Thu, 08 Dec 2016)

  Changed paths:
    M src/lib-storage/mail-search-args-simplify.c

  Log Message:
  -----------
  lib-storage: Fix typo in function name


  Commit: 93d5beb772c26002b3b80e886a47de5c521868a5
      https://github.com/dovecot/core/commit/93d5beb772c26002b3b80e886a47de5c521868a5
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2016-12-08 (Thu, 08 Dec 2016)

  Changed paths:
    M src/lib-storage/test-mail-search-args-simplify.c

  Log Message:
  -----------
  lib-storage: Add test for inversion of n->max

In mail-search-simplify-args, ensure that
ALL NOT UID 3:* becomes UID 1:2


  Commit: 7951e22895109a93ff9784d60659bed4cb22fef4
      https://github.com/dovecot/core/commit/7951e22895109a93ff9784d60659bed4cb22fef4
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-12-08 (Thu, 08 Dec 2016)

  Changed paths:
    M src/lib/test-seq-range-array.c

  Log Message:
  -----------
  lib: Improve seq_range_array_invert() unit tests

Try all possible combinations for seq=0..7 and seq=4294967288..4294967295
and make sure they're inverted correctly.


Compare: https://github.com/dovecot/core/compare/f7f4b657ceb3...7951e2289510


More information about the dovecot-cvs mailing list