[dovecot/core] e8df5c: master: Removed unused process_exec(extra_args) pa...

GitHub noreply at github.com
Fri Dec 16 23:30:10 UTC 2016


  Branch: refs/heads/master
  Home:   https://github.com/dovecot/core
  Commit: e8df5cfa65521933fa16a9487b427bfdae92c9ca
      https://github.com/dovecot/core/commit/e8df5cfa65521933fa16a9487b427bfdae92c9ca
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-12-16 (Fri, 16 Dec 2016)

  Changed paths:
    M src/master/common.h
    M src/master/main.c
    M src/master/service-process.c

  Log Message:
  -----------
  master: Removed unused process_exec(extra_args) parameter

Removes unnecessarily complicated code marked with @UNSAFE.


  Commit: 618262376e4a087f2047e627baf008884a4085b9
      https://github.com/dovecot/core/commit/618262376e4a087f2047e627baf008884a4085b9
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-12-16 (Fri, 16 Dec 2016)

  Changed paths:
    M src/lib/data-stack.h
    M src/lib/test-data-stack.c

  Log Message:
  -----------
  lib: Remove t_buffer_*_type()

The t_buffer_*() shouldn't normally be used anyway except in some low-level
string/buffer manipulation code, so there's not much point in trying to make
easier to use versions of them.


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

  Changed paths:
    M src/lib/Makefile.am
    M src/lib/lib.h
    A src/lib/malloc-overflow.h
    M src/lib/test-lib.inc
    A src/lib/test-malloc-overflow.c

  Log Message:
  -----------
  lib: Add MALLOC_MULTIPLY() and MALLOC_ADD()

These can be used for calculating memory allocation sizes. If there's an
overflow, the macro panics.


  Commit: 7e90e9424489b06ebe17a019f56eb3624ca091b2
      https://github.com/dovecot/core/commit/7e90e9424489b06ebe17a019f56eb3624ca091b2
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-12-16 (Fri, 16 Dec 2016)

  Changed paths:
    M src/lib/data-stack.h
    M src/lib/mempool.h

  Log Message:
  -----------
  lib: *_new(): Use the new MALLOC_MULTIPLY() macro to avoid overflows

Cast the sizeof() result to unsigned int, because it's definitely always
enough and in many cases this allows optimizing away the wrap-check.


  Commit: 19b9eb5baaf89c2cccce41a71191b1e7ca9283cf
      https://github.com/dovecot/core/commit/19b9eb5baaf89c2cccce41a71191b1e7ca9283cf
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-12-16 (Fri, 16 Dec 2016)

  Changed paths:
    M src/lib/strfuncs.c

  Log Message:
  -----------
  lib: Optimization - p_strconcat() doesn't need to allocate from data stack

Various other parts of the code already rely on p_malloc() not overwriting
t_buffer_get()'ed data. p_strconcat() can do that as well.


  Commit: 2ac5f36aa7c2e7a07ba8815d43a6d7483f62e74c
      https://github.com/dovecot/core/commit/2ac5f36aa7c2e7a07ba8815d43a6d7483f62e74c
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-12-16 (Fri, 16 Dec 2016)

  Changed paths:
    M src/auth/auth-cache.c
    M src/auth/auth-request.c
    M src/auth/auth-request.h
    M src/auth/db-checkpassword.c
    M src/auth/db-ldap.c
    M src/auth/mech-gssapi.c
    M src/auth/mech-scram-sha1.c
    M src/auth/password-scheme.c
    M src/auth/userdb-dict.c
    M src/config/config-parser-private.h
    M src/config/config-parser.c
    M src/config/config-request.c
    M src/config/doveconf.c
    M src/config/old-set-parser.c
    M src/director/director-connection.c
    M src/doveadm/doveadm-auth-server.c
    M src/doveadm/doveadm-auth.c
    M src/doveadm/doveadm-cmd.c
    M src/doveadm/doveadm-fs.c
    M src/doveadm/doveadm-log.c
    M src/doveadm/doveadm-mail-mailbox.c
    M src/doveadm/doveadm-mail.c
    M src/doveadm/doveadm-print-table.c
    M src/doveadm/doveadm-sis.c
    M src/doveadm/doveadm-util.c
    M src/doveadm/doveadm.c
    M src/doveadm/dsync/dsync-brain-mailbox-tree.c
    M src/doveadm/dsync/dsync-mailbox-tree-sync.c
    M src/doveadm/dsync/dsync-mailbox-tree.c
    M src/imap/cmd-list.c
    M src/imap/cmd-notify.c
    M src/imap/cmd-rename.c
    M src/imap/cmd-subscribe.c
    M src/imap/imap-list.c
    M src/imap/imap-notify.c
    M src/imap/imap-status.c
    M src/imap/main.c
    M src/ipc/main.c
    M src/lib-compression/compression.c
    M src/lib-compression/ostream-bzlib.c
    M src/lib-compression/ostream-lzma.c
    M src/lib-compression/ostream-zlib.c
    M src/lib-dict/dict-db.c
    M src/lib-dict/dict-file.c
    M src/lib-dict/dict-memcached.c
    M src/lib-dict/dict-sql-settings.c
    M src/lib-dict/dict-sql.c
    M src/lib-fs/fs-dict.c
    M src/lib-fs/fs-posix.c
    M src/lib-fs/fs-test.c
    M src/lib-fts/fts-filter-english-possessive.c
    M src/lib-fts/fts-icu.c
    M src/lib-fts/fts-tokenizer-address.c
    M src/lib-fts/test-fts-tokenizer.c
    M src/lib-http/http-client-request.c
    M src/lib-imap-client/imapc-connection.c
    M src/lib-imap/imap-match.c
    M src/lib-imap/imap-parser.c
    M src/lib-imap/imap-quote.c
    M src/lib-imap/imap-utf7.c
    M src/lib-lda/lmtp-client.c
    M src/lib-mail/istream-binary-converter.c
    M src/lib-mail/message-decoder.c
    M src/lib-mail/message-header-decode.c
    M src/lib-mail/test-istream-attachment.c
    M src/lib-mail/test-istream-dot.c
    M src/lib-mail/test-istream-header-filter.c
    M src/lib-mail/test-istream-qp-decoder.c
    M src/lib-mail/test-mbox-from.c
    M src/lib-mail/test-message-header-parser.c
    M src/lib-master/master-login.c
    M src/lib-master/master-service.c
    M src/lib-storage/index/cydir/cydir-save.c
    M src/lib-storage/index/cydir/cydir-sync.h
    M src/lib-storage/index/dbox-common/dbox-file-fix.c
    M src/lib-storage/index/dbox-multi/mdbox-map.c
    M src/lib-storage/index/dbox-multi/mdbox-purge.c
    M src/lib-storage/index/imapc/imapc-list.c
    M src/lib-storage/index/imapc/imapc-search.c
    M src/lib-storage/index/imapc/imapc-storage.c
    M src/lib-storage/index/index-attribute.c
    M src/lib-storage/index/index-mail-headers.c
    M src/lib-storage/index/index-search.c
    M src/lib-storage/index/index-sort.c
    M src/lib-storage/index/maildir/maildir-filename-flags.c
    M src/lib-storage/index/maildir/maildir-save.c
    M src/lib-storage/index/maildir/maildir-uidlist.c
    M src/lib-storage/index/mbox/mbox-storage.c
    M src/lib-storage/index/shared/shared-list.c
    M src/lib-storage/list/mailbox-list-delete.c
    M src/lib-storage/list/mailbox-list-fs-iter.c
    M src/lib-storage/list/mailbox-list-index-backend.c
    M src/lib-storage/list/mailbox-list-index.h
    M src/lib-storage/list/mailbox-list-iter.c
    M src/lib-storage/list/mailbox-list-maildir-iter.c
    M src/lib-storage/list/mailbox-list-maildir.c
    M src/lib-storage/list/mailbox-list-notify-tree.c
    M src/lib-storage/list/mailbox-list-subscriptions.c
    M src/lib-storage/mail-namespace.c
    M src/lib-storage/mail-storage-service.c
    M src/lib-storage/mail-storage.c
    M src/lib-storage/mail-user.c
    M src/lib-storage/mailbox-list.c
    M src/lib-storage/mailbox-tree.c
    M src/lib-storage/mailbox-uidvalidity.c
    M src/lib/array.c
    M src/lib/env-util.c
    M src/lib/failures.c
    M src/lib/istream-base64-encoder.c
    M src/lib/json-parser.c
    M src/lib/module-dir.c
    M src/lib/net.c
    M src/lib/ostream-file.c
    M src/lib/printf-format-fix.c
    M src/lib/printf-format-fix.h
    M src/lib/str-find.c
    M src/lib/str-sanitize.c
    M src/lib/str.c
    M src/lib/strfuncs.c
    M src/lib/test-printf-format-fix.c
    M src/lib/unlink-old-files.c
    M src/lib/var-expand.c
    M src/lmtp/commands.c
    M src/log/log-error-buffer.c
    M src/login-common/client-common-auth.c
    M src/login-common/client-common.c
    M src/login-common/login-proxy-state.c
    M src/master/master-settings.c
    M src/master/service-process.c
    M src/plugins/acl/acl-lookup-dict.c
    M src/plugins/acl/acl-mailbox-list.c
    M src/plugins/dict-ldap/dict-ldap.c
    M src/plugins/fts-solr/fts-backend-solr-old.c
    M src/plugins/fts-solr/fts-backend-solr.c
    M src/plugins/fts-squat/squat-test.c
    M src/plugins/fts/fts-api.c
    M src/plugins/fts/fts-search-args.c
    M src/plugins/imap-acl/imap-acl-plugin.c
    M src/plugins/imap-stats/imap-stats-plugin.c
    M src/plugins/mail-crypt/mail-crypt-pluginenv.c
    M src/plugins/mail-crypt/mail-crypt-userenv.c
    M src/plugins/quota/quota-dirsize.c
    M src/replication/aggregator/replicator-connection.c

  Log Message:
  -----------
  global: Change string position/length from unsigned int to size_t

Mainly to avoid truncating >4GB strings, which might potentially cause
some security holes. Normally there are other limits, which prevent such
excessive strings from being created in the first place.

I'm sure this didn't find everything. Maybe everything could be found with
compiler warnings. -Wconversion kind of does it, but it gives way too many
unnecessary warnings.

These were mainly found with:

grep " = strlen"
egrep "unsigned int.*(size|len)"


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

  Changed paths:
    M src/auth/auth-request-var-expand.c
    M src/doveadm/doveadm-dump-index.c
    M src/lib-imap/imap-utf7.c
    M src/lib-index/mail-index-transaction-view.c
    M src/lib-index/mail-index.c
    M src/lib-master/master-login.c
    M src/lib-program-client/program-client-local.c
    M src/lib-storage/index/maildir/maildir-save.c
    M src/lib-storage/index/pop3c/pop3c-sync.c
    M src/lib-storage/mailbox-list.c
    M src/lib/data-stack.c
    M src/lib/hex-binary.c
    M src/lib/str-find.c
    M src/lib/strfuncs.c
    M src/log/log-error-buffer.c
    M src/plugins/acl/acl-cache.c
    M src/plugins/acl/acl-cache.h
    M src/pop3/pop3-client.h
    M src/pop3/pop3-commands.c
    M src/stats/mail-command.c
    M src/stats/mail-domain.c
    M src/stats/mail-ip.c
    M src/stats/mail-session.c
    M src/stats/mail-user.c

  Log Message:
  -----------
  global: Make sure *_malloc() calculations won't cause integer overflows.


Compare: https://github.com/dovecot/core/compare/fa780a18c418...e7d0bea63a08


More information about the dovecot-cvs mailing list