]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
global: Change string position/length from unsigned int to size_t
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Mon, 12 Dec 2016 05:19:55 +0000 (07:19 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Fri, 16 Dec 2016 21:41:29 +0000 (23:41 +0200)
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)"

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

index c47808ff6da9aa288fd2b10b056536e63ae72707..b64aefe3e93b6f1fdec2e03424cd3622ecec5ce7 100644 (file)
@@ -271,7 +271,7 @@ static bool auth_cache_node_is_user(struct auth_cache_node *node,
                                    const char *username)
 {
        const char *data = node->data;
-       unsigned int username_len;
+       size_t username_len;
 
        /* The cache nodes begin with "P"/"U", passdb/userdb ID, optional
           "+" master user, "\t" and then usually followed by the username.
index f50988b8451a1a5647796d6d5eee37b9fb93cbf6..e9e20d54d0456ecbfb7d45d8f635a3d5c4d8c6a3 100644 (file)
@@ -1745,7 +1745,7 @@ void auth_request_set_field(struct auth_request *request,
                            const char *name, const char *value,
                            const char *default_scheme)
 {
-       unsigned int name_len = strlen(name);
+       size_t name_len = strlen(name);
 
        i_assert(*name != '\0');
        i_assert(value != NULL);
@@ -1966,7 +1966,7 @@ auth_request_userdb_import(struct auth_request *request, const char *args)
 void auth_request_set_userdb_field(struct auth_request *request,
                                   const char *name, const char *value)
 {
-       unsigned int name_len = strlen(name);
+       size_t name_len = strlen(name);
        uid_t uid;
        gid_t gid;
 
index 63fb8387049b17ac488fd6823216c7a1a3b92bef..56e95b9434b01b60eb2c7093d6dae315021da332 100644 (file)
@@ -81,7 +81,7 @@ struct auth_request {
        struct timeout *to_abort, *to_penalty;
        unsigned int policy_penalty;
        unsigned int last_penalty;
-       unsigned int initial_response_len;
+       size_t initial_response_len;
        const unsigned char *initial_response;
 
        union {
index b433d51191ad0a0e830b6709b078b3dd5f7cc644..4c2fa10f2fb87c9497173f30dffc599e24235081 100644 (file)
@@ -35,7 +35,7 @@ struct chkpw_auth_request {
        struct io *io_out, *io_in;
 
        string_t *input_buf;
-       unsigned int output_pos, output_len;
+       size_t output_pos, output_len;
 
        int exit_status;
        bool exited:1;
@@ -463,7 +463,7 @@ void db_checkpassword_call(struct db_checkpassword *db,
                           void (*request_callback)())
 {
        struct chkpw_auth_request *chkpw_auth_request;
-       unsigned int output_len;
+       size_t output_len;
        int fd_in[2], fd_out[2];
        pid_t pid;
 
@@ -473,7 +473,7 @@ void db_checkpassword_call(struct db_checkpassword *db,
                output_len += strlen(auth_password);
        if (output_len > CHECKPASSWORD_MAX_REQUEST_LEN) {
                auth_request_log_info(request, AUTH_SUBSYS_DB,
-                       "Username+password combination too long (%u bytes)",
+                       "Username+password combination too long (%"PRIuSIZE_T" bytes)",
                        output_len);
                callback(request, DB_CHECKPASSWORD_STATUS_FAILURE,
                         NULL, request_callback);
index 556472fe35481d77d42a1dd323b53783e1756ddb..78a9d56bd0f4f6c4395c83f2e22e80512aea6398 100644 (file)
@@ -1797,7 +1797,8 @@ db_ldap_result_finish_debug(struct db_ldap_result_iterate_context *ctx)
        struct hash_iterate_context *iter;
        char *name;
        struct db_ldap_value *value;
-       unsigned int orig_len, unused_count = 0;
+       unsigned int unused_count = 0;
+       size_t orig_len;
 
        orig_len = str_len(ctx->debug);
        if (orig_len == 0) {
index c81e174e1f7633d716349e165f80d6b41bf5adcf..09d4f105b83d1b5893a46946285ffb98b87ec817 100644 (file)
@@ -233,10 +233,10 @@ duplicate_name(struct auth_request *request, gss_name_t old)
        return new;
 }
 
-static bool data_has_nuls(const void *data, unsigned int len)
+static bool data_has_nuls(const void *data, size_t len)
 {
        const unsigned char *c = data;
-       unsigned int i;
+       size_t i;
 
        /* apparently all names end with NUL? */
        if (len > 0 && c[len-1] == '\0')
@@ -584,7 +584,7 @@ mech_gssapi_unwrap(struct gssapi_auth_request *request, gss_buffer_desc inbuf)
        gss_buffer_desc outbuf;
        const char *login_user, *error;
        unsigned char *name;
-       unsigned int name_len;
+       size_t name_len;
 
        major_status = gss_unwrap(&minor_status, request->gss_ctx,
                                  &inbuf, &outbuf, NULL, NULL);
index 99e11ef1a2296cb8800f695c93f68c4d10afc207..282ae9b9d5581c3155033e381dc8aa8f90fd1488 100644 (file)
@@ -350,7 +350,7 @@ static void mech_scram_sha1_auth_continue(struct auth_request *auth_request,
                (struct scram_auth_request *)auth_request;
        const char *error = NULL;
        const char *server_final_message;
-       int len;
+       size_t len;
 
        if (request->client_first_message_bare == NULL) {
                /* Received client-first-message */
index bdff0f11424aaf301eb93d43f56d18e64e6fcc3f..e554de610cf2961105fd5c2a6af7cefd5c31f7d6 100644 (file)
@@ -44,7 +44,7 @@ password_scheme_lookup(const char *name, enum password_encoding *encoding_r)
 {
        const struct password_scheme *scheme;
        const char *encoding = NULL;
-       unsigned int scheme_len;
+       size_t scheme_len;
 
        *encoding_r = PW_ENCODING_NONE;
 
@@ -145,7 +145,7 @@ int password_decode(const char *password, const char *scheme,
        const struct password_scheme *s;
        enum password_encoding encoding;
        buffer_t *buf;
-       unsigned int len;
+       size_t len;
        bool guessed_encoding;
 
        *error_r = NULL;
@@ -614,7 +614,7 @@ plain_trunc_verify(const char *plaintext, const char *user ATTR_UNUSED,
                   const unsigned char *raw_password, size_t size,
                   const char **error_r)
 {
-       unsigned int i, plaintext_len, trunc_len = 0;
+       size_t i, plaintext_len, trunc_len = 0;
 
        /* format: <length>-<password> */
        for (i = 0; i < size; i++) {
index f594b57a9982f90c3d911e2867f49e28c8bf2089..80b0d13f981f74958245135126e427528017b935 100644 (file)
@@ -22,7 +22,7 @@ struct dict_userdb_iterate_context {
 
        userdb_callback_t *userdb_callback;
        const char *key_prefix;
-       unsigned int key_prefix_len;
+       size_t key_prefix_len;
        struct dict_iterate_context *iter;
 };
 
index da58a550c6af0aad1f8d7ba8f4630d5e09dc0129..2527c5f9d44a2d7fcf455802f72f5808d9a6f7a1 100644 (file)
@@ -23,7 +23,7 @@ struct config_section_stack {
        struct config_filter filter;
        /* root=NULL-terminated list of parsers */
        struct config_module_parser *parsers;
-       unsigned int pathlen;
+       size_t pathlen;
 
        const char *open_path;
        unsigned int open_linenum;
@@ -48,7 +48,7 @@ struct config_parser_context {
        struct input_stack *cur_input;
 
        string_t *str;
-       unsigned int pathlen;
+       size_t pathlen;
        unsigned int section_counter;
        const char *error;
 
index 7463c224e330c6861e73571e6c498a41b823612c..10a70866d6c4aef4b2181b02a098b39a1291bfae 100644 (file)
@@ -552,7 +552,7 @@ config_parse_line(struct config_parser_context *ctx,
                  const char **key_r, const char **value_r)
 {
        const char *key;
-       unsigned int len;
+       size_t len;
        char *p;
 
        *key_r = NULL;
index 10c4aada553134e2caabb710d9a4bbe98649fdd7..54e433773a5916fcc678237b20b4d2aab9ac332f 100644 (file)
@@ -166,7 +166,7 @@ bool config_export_type(string_t *str, const void *value,
        }
        case SET_ENUM: {
                const char *const *val = value;
-               unsigned int len = strlen(*val);
+               size_t len = strlen(*val);
 
                if (dump_default)
                        str_append(str, *val);
@@ -220,7 +220,8 @@ settings_export(struct config_export_context *ctx,
        const struct setting_define *def;
        const void *value, *default_value, *change_value;
        void *const *children, *const *change_children = NULL;
-       unsigned int i, count, count2, prefix_len;
+       unsigned int i, count, count2;
+       size_t prefix_len;
        const char *str;
        char *key;
        bool dump, dump_default = FALSE;
index d79fc690eb96d5b79652a5cc5f64e096fa99e41f..b1b88c178013c1c2393654cb86000460a0b34aaf 100644 (file)
@@ -154,7 +154,7 @@ static void config_dump_human_deinit(struct config_dump_human_context *ctx)
 
 static bool value_need_quote(const char *value)
 {
-       unsigned int len = strlen(value);
+       size_t len = strlen(value);
 
        if (len == 0)
                return FALSE;
@@ -176,8 +176,9 @@ config_dump_human_output(struct config_dump_human_context *ctx,
        struct prefix_stack prefix;
        const char *const *strings, *const *args, *p, *str, *const *prefixes;
        const char *key, *key2, *value;
-       unsigned int i, j, count, len, prefix_count, skip_len;
-       unsigned int setting_name_filter_len, prefix_idx = UINT_MAX;
+       unsigned int i, j, count, prefix_count;
+       unsigned int prefix_idx = UINT_MAX;
+       size_t len, skip_len, setting_name_filter_len;
        bool unique_key;
        int ret = 0;
 
@@ -461,7 +462,7 @@ config_dump_one(const struct config_filter *filter, bool hide_key,
 {
        static struct config_dump_human_context *ctx;
        const char *const *str;
-       unsigned int len;
+       size_t len;
        bool dump_section = FALSE;
 
        ctx = config_dump_human_init(NULL, scope, FALSE);
@@ -499,7 +500,8 @@ static void config_request_simple_stdout(const char *key, const char *value,
                                         void *context)
 {
        char **setting_name_filters = context;
-       unsigned int i, filter_len;
+       unsigned int i;
+       size_t filter_len;
 
        if (setting_name_filters == NULL) {
                printf("%s=%s\n", key, value);
@@ -600,7 +602,7 @@ static void hostname_verify_format(const char *arg)
        struct hostname_format fmt;
        const char *p;
        unsigned char hash[GUID_128_HOST_HASH_SIZE];
-       unsigned int len, n, limit;
+       unsigned int n, limit;
        HASH_TABLE(void *, void *) hosts;
        void *key, *value;
        string_t *host;
@@ -627,7 +629,7 @@ static void hostname_verify_format(const char *arg)
                fmt.suffix = p;
        } else {
                /* detect host1[suffix] vs host01[suffix] */
-               len = strlen(my_hostname);
+               size_t len = strlen(my_hostname);
                while (len > 0 && !i_isdigit(my_hostname[len-1]))
                        len--;
                fmt.suffix = my_hostname + len;
index f17e5738a14385ee8bcf35b3cf04dae7a8194c11..cd1db6be6d5addaa148832658ed3e642a89cc7eb 100644 (file)
@@ -150,7 +150,7 @@ old_settings_handle_root(struct config_parser_context *ctx,
                         const char *key, const char *value)
 {
        const char *p;
-       unsigned int len;
+       size_t len;
 
        if (strcmp(key, "base_dir") == 0) {
                len = strlen(value);
@@ -595,7 +595,7 @@ static void socket_apply(struct config_parser_context *ctx)
 {
        const struct socket_set *set = &ctx->old->socket_set;
        const char *path, *prefix;
-       unsigned int len;
+       size_t len;
        bool master_suffix;
 
        if (set->path == NULL) {
index f5aa44ab33904830016d33675e8829845e7331a9..d4aa859d37c065152a1d839c2381f8d347db0e7e 100644 (file)
@@ -2145,7 +2145,7 @@ static void director_connection_reconnect(struct director_connection **_conn,
 void director_connection_send(struct director_connection *conn,
                              const char *data)
 {
-       unsigned int len = strlen(data);
+       size_t len = strlen(data);
        off_t ret;
 
        if (conn->output->closed || !conn->connected)
index e9a52581627ecb7f6cacbe3366417ffcc41e9762..d26264279d2f830f6104d4fc482a0c459f7b618f 100644 (file)
@@ -87,7 +87,7 @@ cmd_user_input(struct auth_master_connection *conn,
                        t_strdup_printf("\"error\":\"%s: user doesn't exist\"",
                                lookup_name));
        } else if (show_field != NULL) {
-               unsigned int show_field_len = strlen(show_field);
+               size_t show_field_len = strlen(show_field);
                string_t *json_field = t_str_new(show_field_len+1);
                json_append_escaped(json_field, show_field);
                o_stream_nsend_str(doveadm_print_ostream, t_strdup_printf("\"%s\":", str_c(json_field)));
index 73812f4eaf973aa1618247f61be082b36e36326d..9400d400f1533a33d13ae0369f4a67774a4cb68b 100644 (file)
@@ -86,7 +86,7 @@ cmd_user_input(struct auth_master_connection *conn,
                        "%s: user %s doesn't exist\n", lookup_name,
                        input->username);
        } else if (show_field != NULL) {
-               unsigned int show_field_len = strlen(show_field);
+               size_t show_field_len = strlen(show_field);
 
                for (; *fields != NULL; fields++) {
                        if (strncmp(*fields, show_field, show_field_len) == 0 &&
index ad07d3ac9eac69f668aec529048988cf0bde9377..97fd6e7a9706f4f0c3e6b5d191d80af00b9620b3 100644 (file)
@@ -111,7 +111,7 @@ doveadm_cmd_find_multi_word(const char *cmdname, int *_argc,
 {
        int argc = *_argc;
        const char *const *argv = *_argv;
-       unsigned int len;
+       size_t len;
 
        if (argc < 2)
                return FALSE;
@@ -141,7 +141,7 @@ doveadm_cmd_find_with_args(const char *cmd_name, int *argc,
                           const char *const *argv[])
 {
        const struct doveadm_cmd *cmd;
-       unsigned int cmd_name_len;
+       size_t cmd_name_len;
 
        i_assert(*argc > 0);
 
index 4d147d800556a37b18fabd1a323ce1c68aed7a6f..4796d8fb1e37976e34fe7af2ff91ea2f601857de 100644 (file)
@@ -385,7 +385,7 @@ static void cmd_fs_delete_recursive_path(struct fs *fs, const char *path,
                                         unsigned int async_count)
 {
        struct fs_file *file;
-       unsigned int path_len;
+       size_t path_len;
 
        path_len = strlen(path);
        if (path_len > 0 && path[path_len-1] != '/')
index e50898a905cafe3b894f891798802713ab997551..7167734535ddc3b36224eecb3b4e41ddcfddd34a 100644 (file)
@@ -91,7 +91,7 @@ cmd_log_find_syslog_files(struct log_find_context *ctx, const char *path)
        struct stat st;
        char *key;
        string_t *full_path;
-       unsigned int dir_len;
+       size_t dir_len;
 
        dir = opendir(path);
        if (dir == NULL) {
@@ -131,7 +131,8 @@ cmd_log_find_syslog_files(struct log_find_context *ctx, const char *path)
 
 static bool log_type_find(const char *str, enum log_type *type_r)
 {
-       unsigned int i, len = strlen(str);
+       unsigned int i;
+       size_t len = strlen(str);
 
        for (i = 0; i < LAST_LOG_TYPE; i++) {
                if (strncasecmp(str, failure_log_type_prefixes[i], len) == 0 &&
@@ -281,7 +282,7 @@ static void cmd_log_find(int argc, char *argv[])
 
 static const char *t_cmd_log_error_trim(const char *orig)
 {
-       unsigned int pos;
+       size_t pos;
 
        /* Trim whitespace from suffix and remove ':' if it exists */
        for (pos = strlen(orig); pos > 0; pos--) {
index a300e844b65a8a6c35a9770df738a5003338750e..ba3f8658a9e756b39850c7322ca7ea2633c3539e 100644 (file)
@@ -220,7 +220,7 @@ cmd_mailbox_create_run(struct doveadm_mail_cmd_context *_ctx,
 
        array_foreach(&ctx->mailboxes, namep) {
                const char *name = *namep;
-               unsigned int len;
+               size_t len;
                bool directory = FALSE;
 
                ns = mail_namespace_find(user->namespaces, name);
index dbf3a330f4a4386e116efaa5478f5ef0a5656a8f..729ca0f9eff9124682a0df8ecc2f281cda41be98 100644 (file)
@@ -699,7 +699,7 @@ doveadm_mail_cmd_try_find_multi_word(const struct doveadm_mail_cmd *cmd,
                                     const char *cmdname, int *argc,
                                     const char *const **argv)
 {
-       unsigned int len;
+       size_t len;
 
        if (*argc < 2)
                return FALSE;
@@ -727,7 +727,7 @@ doveadm_mail_cmd_find_from_argv(const char *cmd_name, int *argc,
                                const char *const **argv)
 {
        const struct doveadm_mail_cmd *cmd;
-       unsigned int cmd_name_len;
+       size_t cmd_name_len;
        const char *const *orig_argv;
        int orig_argc;
 
@@ -822,7 +822,7 @@ void doveadm_mail_try_help_name(const char *cmd_name)
 bool doveadm_mail_has_subcommands(const char *cmd_name)
 {
        const struct doveadm_mail_cmd *cmd;
-       unsigned int len = strlen(cmd_name);
+       size_t len = strlen(cmd_name);
 
        array_foreach(&doveadm_mail_cmds, cmd) {
                if (strncmp(cmd->name, cmd_name, len) == 0 &&
index 5cadd53244c402c62e69cb388426e612f82e8366..54d98a89e74eb8767c7fecd4d326269d18214ab0 100644 (file)
@@ -19,7 +19,7 @@ struct doveadm_print_table_header {
        const char *key;
        const char *title;
        enum doveadm_print_header_flags flags;
-       unsigned int min_length, max_length, length;
+       size_t min_length, max_length, length;
 };
 
 struct doveadm_print_table_context {
@@ -51,8 +51,8 @@ static void doveadm_calc_header_length(void)
 {
        struct doveadm_print_table_header *headers;
        const char *value, *const *values;
-       unsigned int i, line, len, hdr_count, value_count, line_count;
-       unsigned int max_length, orig_length, diff;
+       unsigned int i, line, hdr_count, value_count, line_count;
+       size_t len, max_length, orig_length, diff;
 
        ctx->lengths_set = TRUE;
 
index 044e00278394e438a37076b6ee8c5f5201aa28fc..1cd5bf2d3a709adf305b8ad11c36d95e6d3b648e 100644 (file)
@@ -212,7 +212,7 @@ static void cmd_sis_deduplicate(int argc, char *argv[])
        struct dirent *d;
        struct stat st, first_st;
        string_t *path;
-       unsigned int dir_len;
+       size_t dir_len;
        int ret;
 
        if (argc < 3)
@@ -270,7 +270,7 @@ static void cmd_sis_find(int argc, char *argv[])
        struct dirent *d;
        struct stat st;
        string_t *str;
-       unsigned int dir_len, hash_len;
+       size_t dir_len, hash_len;
 
        if (argc < 3 || strlen(argv[2]) < 4)
                help(&doveadm_cmd_sis_find);
index 3a895f5af479bed006910d72df7b2815bdbb8f8a..31b0eab7a1658709824c8c89d3d40dfeebe374fb 100644 (file)
@@ -49,7 +49,7 @@ bool doveadm_has_unloaded_plugin(const char *name)
        DIR *dir;
        struct dirent *d;
        const char *plugin_name;
-       unsigned int name_len = strlen(name);
+       size_t name_len = strlen(name);
        bool found = FALSE;
 
        /* first check that it's not actually loaded */
index 24b76441eb3092a9fe848e3472a63d67fc0b81a7..c6203f3b1726fc5784147c0a18f2ccde2651bdff 100644 (file)
@@ -55,7 +55,8 @@ doveadm_usage_compress_lines(FILE *out, const char *str, const char *prefix)
        const char *cmd, *args, *p, *short_name, *sub_name;
        const char *prev_name = "", *prev_sub_name = "";
        const char **lines;
-       unsigned int i, count, prefix_len = strlen(prefix);
+       unsigned int i, count;
+       size_t prefix_len = strlen(prefix);
 
        /* split lines */
        lines = (void *)p_strsplit(pool_datastack_create(), str, "\n");
@@ -228,7 +229,7 @@ static bool doveadm_has_subcommands(const char *cmd_name)
 {
        const struct doveadm_cmd_ver2 *cmd2;
        const struct doveadm_cmd *cmd;
-       unsigned int len = strlen(cmd_name);
+       size_t len = strlen(cmd_name);
 
        array_foreach(&doveadm_cmds, cmd) {
                if (strncmp(cmd->name, cmd_name, len) == 0 &&
index 786efa505317df39a9480e26261c223673547bd3..9af708df22c3c31bd511533a1b95c4532b899dff 100644 (file)
@@ -120,7 +120,7 @@ dsync_namespace_match_parts(struct mail_namespace *ns,
                            const char *const *name_parts)
 {
        const char *part, *prefix = ns->prefix;
-       unsigned int part_len;
+       size_t part_len;
        char ns_sep = mail_namespace_get_sep(ns);
 
        if ((ns->flags & NAMESPACE_FLAG_INBOX_USER) != 0 &&
index 3b0937927a4f0130594b5bebf2d3174611d054ff..6bb507721fca3b1d31ba6120973240597ae8db5c 100644 (file)
@@ -364,7 +364,7 @@ static bool sync_node_is_namespace_prefix(struct dsync_mailbox_tree *tree,
                                          struct dsync_mailbox_node *node)
 {
        const char *full_name;
-       unsigned int prefix_len = node->ns == NULL ? 0 : node->ns->prefix_len;
+       size_t prefix_len = node->ns == NULL ? 0 : node->ns->prefix_len;
 
        if (strcmp(node->name, "INBOX") == 0 && node->parent == &tree->root)
                return TRUE;
@@ -390,7 +390,8 @@ sync_rename_node_to_temp(struct dsync_mailbox_tree_sync_ctx *ctx,
        const char *old_name, *new_name, *p;
        char name[TEMP_MAX_NAME_LEN+1];
        buffer_t buf;
-       unsigned int prefix_len, max_prefix_len, counter = 1;
+       size_t prefix_len, max_prefix_len;
+       unsigned int counter = 1;
 
        i_assert(!sync_node_is_namespace_prefix(tree, node));
 
@@ -963,7 +964,7 @@ mailbox_node_generate_suffix(struct dsync_mailbox_node *node)
 static void suffix_inc(string_t *str)
 {
        char *data;
-       unsigned int i;
+       size_t i;
 
        data = str_c_modifiable(str) + str_len(str)-1;
        for (i = str_len(str); i > 0; i--, data--) {
@@ -988,7 +989,7 @@ sync_rename_temp_mailbox_node(struct dsync_mailbox_tree *tree,
 {
        const char *p, *new_suffix;
        string_t *str = t_str_new(256);
-       unsigned int max_prefix_len;
+       size_t max_prefix_len;
 
        /* The name is currently <oldname>-<temp>. Both sides need to
           use equivalent names, so we'll replace the <temp> if possible
index bebb772f636ebed58d45a0d87dd498c8ec0ea6d0..b1a420c8acfaf977d0659689d23727673ae0cb8f 100644 (file)
@@ -180,7 +180,7 @@ dsync_mailbox_tree_iter_init(struct dsync_mailbox_tree *tree)
        return iter;
 }
 
-static unsigned int node_get_full_name_length(struct dsync_mailbox_node *node)
+static size_t node_get_full_name_length(struct dsync_mailbox_node *node)
 {
        if (node->parent->parent == NULL)
                return strlen(node->name);
@@ -194,7 +194,7 @@ bool dsync_mailbox_tree_iter_next(struct dsync_mailbox_tree_iter *iter,
                                  const char **full_name_r,
                                  struct dsync_mailbox_node **node_r)
 {
-       unsigned int len;
+       size_t len;
 
        if (iter->cur->first_child != NULL)
                iter->cur = iter->cur->first_child;
@@ -395,7 +395,7 @@ dsync_mailbox_tree_dup_nodes(struct dsync_mailbox_tree *dest_tree,
                             const struct dsync_mailbox_node *src,
                             string_t *path)
 {
-       unsigned int prefix_len = str_len(path);
+       size_t prefix_len = str_len(path);
        struct dsync_mailbox_node *node;
 
        if (prefix_len > 0) {
index e338ec2094d82f330b5e61670d21d513a977438f..fa8701f57f36842e04f8a4f37b8946846fc1b009 100644 (file)
@@ -31,7 +31,7 @@ static void
 mailbox_flags2str(struct cmd_list_context *ctx, string_t *str,
                  const char *special_use, enum mailbox_info_flags flags)
 {
-       unsigned int orig_len = str_len(str);
+       size_t orig_len = str_len(str);
 
        if ((flags & MAILBOX_NONEXISTENT) != 0 && !ctx->used_listext) {
                flags |= MAILBOX_NOSELECT;
index 55b2cce31fc3be40d2f8986717c155f7c59c0fc3..725e4d5fb70b01ab3d7eb22dee8f986647d956a4 100644 (file)
@@ -144,7 +144,8 @@ cmd_notify_add_mailbox(struct imap_notify_context *ctx,
        struct imap_notify_namespace *notify_ns;
        struct imap_notify_mailboxes *notify_boxes;
        const char *const *names;
-       unsigned int i, count, cur_len, name_len = strlen(name);
+       unsigned int i, count;
+       size_t cur_len, name_len = strlen(name);
        char ns_sep = mail_namespace_get_sep(ns);
 
        if ((ns->flags & NAMESPACE_FLAG_INBOX_USER) != 0 &&
index 35f20f2ce93a8e9731b7eb252b584a8fc177fd42..b278c108835866405d57399343034149ddef3bcb 100644 (file)
@@ -9,7 +9,7 @@ bool cmd_rename(struct client_command_context *cmd)
        struct mail_namespace *old_ns, *new_ns;
        struct mailbox *old_box, *new_box;
        const char *oldname, *newname;
-       unsigned int oldlen;
+       size_t oldlen;
 
        /* <old name> <new name> */
        if (!client_read_string_args(cmd, 2, &oldname, &newname))
index 4c3e63c9cc4f38e8dfa1b5281bb08123ad899a1f..88786a88dd7bf038f2336ce5b3d65daeaf312274 100644 (file)
@@ -26,7 +26,7 @@ subscribe_is_valid_name(struct client_command_context *cmd, struct mailbox *box)
 
 static bool str_ends_with_char(const char *str, char c)
 {
-       unsigned int len = strlen(str);
+       size_t len = strlen(str);
 
        return len > 0 && str[len-1] == c;
 }
index 6b1577c0fb92eaa7a91655aff4619ed630bdea18..57752b5cdf08ac778d761c54cceb731bbe7bfcd0 100644 (file)
@@ -6,7 +6,7 @@
 
 bool imap_mailbox_flags2str(string_t *str, enum mailbox_info_flags flags)
 {
-       unsigned int orig_len = str_len(str);
+       size_t orig_len = str_len(str);
 
        if ((flags & MAILBOX_SUBSCRIBED) != 0)
                str_append(str, "\\Subscribed ");
index f13bd8aa7778e8c9ac02fa106992452b889bb737..1fc16729df0f074c1419d371442257d165a3e3b9 100644 (file)
@@ -190,7 +190,7 @@ bool imap_notify_match_mailbox(struct imap_notify_namespace *notify_ns,
 {
        struct mailbox *box;
        const char *const *namep;
-       unsigned int name_len;
+       size_t name_len;
        char ns_sep;
        bool ret;
 
index 125293956f237f080f461902924c7346ba0fc05c..43037e2f2dc9d760585db6790f0dadc88b3e9eea 100644 (file)
@@ -103,7 +103,7 @@ int imap_status_send(struct client *client, const char *mailbox_mutf7,
 {
        const struct mailbox_status *status = &result->status;
        string_t *str;
-       unsigned int prefix_len;
+       size_t prefix_len;
 
        str = t_str_new(128);
        str_append(str, "* STATUS ");
index 8384a419e6a6aa9587ca92b1a15f086d541aa219..65e173cc10b3183ef3bcbd1ab74e14b261dcddef 100644 (file)
@@ -134,15 +134,15 @@ struct client_input {
        const char *tag;
 
        const unsigned char *input;
-       unsigned int input_size;
+       size_t input_size;
        bool send_untagged_capability;
 };
 
 static void
-client_parse_input(const unsigned char *data, unsigned int len,
+client_parse_input(const unsigned char *data, size_t len,
                   struct client_input *input_r)
 {
-       unsigned int taglen;
+       size_t taglen;
 
        i_assert(len > 0);
 
index 0387a4eee13bf4d3e0cd02d7eca94b1c3d971302..8fe8848cd3e02d04247ff3a9efb8a8d8832f7f3e 100644 (file)
@@ -10,7 +10,7 @@
 
 static bool ipc_socket_is_client(const char *name)
 {
-       unsigned int len;
+       size_t len;
 
        if (strcmp(name, "ipc") == 0)
                return TRUE;
index d9e9e0b33f893a89686c9bd8ddc7515edf348955..6346b2b367321af63de42f4de58b33c153db8b91 100644 (file)
@@ -106,7 +106,8 @@ compression_detect_handler(struct istream *input)
 const struct compression_handler *
 compression_lookup_handler_from_ext(const char *path)
 {
-       unsigned int i, len, path_len = strlen(path);
+       unsigned int i;
+       size_t len, path_len = strlen(path);
 
        for (i = 0; compression_handlers[i].name != NULL; i++) {
                if (compression_handlers[i].ext == NULL)
index 8f11a6aaa57d2f72b2cccade07da61a72a2f65d2..fb0a16445cd87dd8884eab9586298c7261c14660 100644 (file)
@@ -99,7 +99,7 @@ o_stream_bzlib_send_chunk(struct bzlib_ostream *zstream,
 static int o_stream_bzlib_send_flush(struct bzlib_ostream *zstream)
 {
        bz_stream *zs = &zstream->zs;
-       unsigned int len;
+       size_t len;
        bool done = FALSE;
        int ret;
 
index 9f25af5e20c760238c93cfd3e77401cf6dc11a59..6184186c73fc7f63ec002600e8291d17bfc6784f 100644 (file)
@@ -105,7 +105,7 @@ o_stream_lzma_send_chunk(struct lzma_ostream *zstream,
 static int o_stream_lzma_send_flush(struct lzma_ostream *zstream)
 {
        lzma_stream *zs = &zstream->strm;
-       unsigned int len;
+       size_t len;
        bool done = FALSE;
        int ret;
 
index 3c3ded2dafb4a20d98c3946ebbb188b0a2e6aee0..8356d58f63ed25c6e1d19ec9cd8e7df7d1db88fd 100644 (file)
@@ -168,7 +168,7 @@ static int
 o_stream_zlib_send_flush(struct zlib_ostream *zstream, bool final)
 {
        z_stream *zs = &zstream->zs;
-       unsigned int len;
+       size_t len;
        bool done = FALSE;
        int ret, flush;
 
index 541665b2b3149da6cb2ebe6bc5ff333775889ad5..45eaf03e5c1d0fd18c76a824905ca4d522e7555c 100644 (file)
@@ -25,7 +25,7 @@ struct db_dict_iterate_context {
 
        DBC *cursor;
        char *path;
-       unsigned int path_len;
+       size_t path_len;
 
        DBT pkey, pdata;
 
index 6b4ce739c30f0370f7cc6aad15d8b83982e63ae0..6598adefd3306e11cd65ac8aa95477bd5325a5fb 100644 (file)
@@ -35,7 +35,7 @@ struct file_dict {
 
 struct file_dict_iterate_path {
        const char *path;
-       unsigned int len;
+       size_t len;
 };
 
 struct file_dict_iterate_context {
@@ -315,7 +315,7 @@ static void file_dict_apply_changes(struct dict_transaction_memory_context *ctx,
        char *key, *value, *old_value;
        char *orig_key, *orig_value;
        const struct dict_transaction_memory_change *change;
-       unsigned int new_len;
+       size_t new_len;
        long long diff;
 
        array_foreach(&ctx->changes, change) {
index 7e4618792715238306f6ccaac7a2f5d15b23f29b..7480bdfcc182ddcd9b38d921d951a15e46f92137 100644 (file)
@@ -38,7 +38,7 @@ struct memcached_connection {
        buffer_t *cmd;
        struct {
                const unsigned char *value;
-               unsigned int value_len;
+               size_t value_len;
                enum memcached_response status;
                bool reply_received;
        } reply;
@@ -278,7 +278,7 @@ memcached_dict_lookup(struct dict *_dict, pool_t pool, const char *key,
        struct memcached_dict *dict = (struct memcached_dict *)_dict;
        struct ioloop *prev_ioloop = current_ioloop;
        struct timeout *to;
-       unsigned int key_len;
+       size_t key_len;
 
        if (strncmp(key, DICT_PATH_SHARED, strlen(DICT_PATH_SHARED)) == 0)
                key += strlen(DICT_PATH_SHARED);
@@ -291,7 +291,7 @@ memcached_dict_lookup(struct dict *_dict, pool_t pool, const char *key,
        key_len = strlen(key);
        if (key_len > 0xffff) {
                *error_r = t_strdup_printf(
-                       "memcached: Key is too long (%u bytes): %s", key_len, key);
+                       "memcached: Key is too long (%"PRIuSIZE_T" bytes): %s", key_len, key);
                return -1;
        }
 
index 25e08bbf55eec0dcc1e41bc24a6e4c96bffc1739..1c4dd82b2f420c1048650f126c64da7c767e65f7 100644 (file)
@@ -167,7 +167,7 @@ parse_setting(const char *key, const char *value,
              struct setting_parser_ctx *ctx)
 {
        struct dict_sql_map_field *field;
-       unsigned int value_len;
+       size_t value_len;
 
        switch (ctx->type) {
        case SECTION_ROOT:
index 3f5436a879f71382ddeb882e2f94ec33d7f8d30a..56713d558d64d52c1bd52c09f532b2518c120c07 100644 (file)
@@ -43,8 +43,8 @@ struct sql_dict_iterate_context {
        struct sql_result *result;
        string_t *key;
        const struct dict_sql_map *map;
-       unsigned int key_prefix_len, pattern_prefix_len, next_map_idx;
-       unsigned int path_idx, sql_fields_start_idx;
+       size_t key_prefix_len, pattern_prefix_len;
+       unsigned int path_idx, sql_fields_start_idx, next_map_idx;
        bool synchronous_result;
        bool iter_query_sent;
        const char *error;
@@ -119,12 +119,12 @@ static void sql_dict_wait(struct dict *dict ATTR_UNUSED)
 
 static bool
 dict_sql_map_match(const struct dict_sql_map *map, const char *path,
-                  ARRAY_TYPE(const_string) *values, unsigned int *pat_len_r,
-                  unsigned int *path_len_r, bool partial_ok, bool recurse)
+                  ARRAY_TYPE(const_string) *values, size_t *pat_len_r,
+                  size_t *path_len_r, bool partial_ok, bool recurse)
 {
        const char *path_start = path;
        const char *pat, *field, *p;
-       unsigned int len;
+       size_t len;
 
        array_clear(values);
        pat = map->pattern;
@@ -200,7 +200,8 @@ sql_dict_find_map(struct sql_dict *dict, const char *path,
                  ARRAY_TYPE(const_string) *values)
 {
        const struct dict_sql_map *maps;
-       unsigned int i, count, len;
+       unsigned int i, count;
+       size_t len;
 
        t_array_init(values, dict->set->max_field_count);
        maps = array_get(&dict->set->maps, &count);
@@ -511,7 +512,8 @@ sql_dict_iterate_find_next_map(struct sql_dict_iterate_context *ctx,
 {
        struct sql_dict *dict = (struct sql_dict *)ctx->ctx.dict;
        const struct dict_sql_map *maps;
-       unsigned int i, count, pat_len, path_len;
+       unsigned int i, count;
+       size_t pat_len, path_len;
        bool recurse = (ctx->flags & DICT_ITERATE_FLAG_RECURSE) != 0;
 
        t_array_init(values, dict->set->max_field_count);
index 4aa8ea2a0763bc0cd91f90381a84e84068f3ef80..7d68dde21da752eed9c5afd7f83ca9df6361277a 100644 (file)
@@ -225,7 +225,7 @@ static int fs_dict_write_stream_finish(struct fs_file *_file, bool success)
                break;
        }
        case FS_DICT_VALUE_ENCODING_BASE64: {
-               const unsigned int base64_size =
+               const size_t base64_size =
                        MAX_BASE64_ENCODED_SIZE(file->write_buffer->used);
                string_t *base64 = t_str_new(base64_size);
                base64_encode(file->write_buffer->data,
index 61b7c6b6bbd4cb73e552aaa1305776e12a7d5b9f..da416116720f905b08a153b5d72be6ce038a13e2 100644 (file)
@@ -31,7 +31,7 @@ enum fs_posix_lock_method {
 struct posix_fs {
        struct fs fs;
        char *temp_file_prefix, *root_path, *path_prefix;
-       unsigned int temp_file_prefix_len;
+       size_t temp_file_prefix_len;
        enum fs_posix_lock_method lock_method;
        mode_t mode;
        bool mode_auto;
index cf912b0b9c4f42ceec4cbf47f5338960bde65f49..ea73cc84e3d0b8619fdff7412c6eca4362056fdd 100644 (file)
@@ -321,7 +321,8 @@ static const char *fs_test_iter_next(struct fs_iter *_iter)
        struct test_fs_iter *iter = (struct test_fs_iter *)_iter;
        struct test_fs *fs = (struct test_fs *)_iter->fs;
        const char *const *files, *p;
-       unsigned int count, len, prev_dir_len = strlen(iter->prev_dir);
+       unsigned int count;
+       size_t len, prev_dir_len = strlen(iter->prev_dir);
 
        files = array_get(&fs->iter_files, &count);
        for (; iter->idx < count; iter->idx++) {
index d04d03830f5d87c1b045f82dc869e4ec33f02d39..6245000500f78d88d9dc20b5de04fcc4c45e07f9 100644 (file)
@@ -5,7 +5,7 @@
 #include "fts-common.h"
 #include "fts-filter-private.h"
 
-static unichar_t get_ending_utf8_char(const char *str, unsigned int *end_pos)
+static unichar_t get_ending_utf8_char(const char *str, size_t *end_pos)
 {
        unichar_t c;
 
@@ -23,7 +23,7 @@ fts_filter_english_possessive_filter(struct fts_filter *filter ATTR_UNUSED,
                                     const char **token,
                                     const char **error_r ATTR_UNUSED)
 {
-       unsigned int len = strlen(*token);
+       size_t len = strlen(*token);
        unichar_t c;
 
        if (len > 1 && ((*token)[len-1] == 's' || (*token)[len-1] == 'S')) {
index 80580ef62b19d710d8297713aaaabd80448e814f..327e9e2993cde2bf6b48c0a1b2d8210b806d067b 100644 (file)
@@ -30,7 +30,7 @@ static struct UCaseMap *fts_icu_csm(void)
 void fts_icu_utf8_to_utf16(buffer_t *dest_utf16, const char *src_utf8)
 {
        UErrorCode err = U_ZERO_ERROR;
-       unsigned int src_bytes = strlen(src_utf8);
+       size_t src_bytes = strlen(src_utf8);
        int32_t utf16_len;
        UChar *dest_data, *retp = NULL;
        int32_t avail_uchars = 0;
index 125a612ae62ce2f1904ebde03d9e38cb9aee6975..c6eaece8645582e34df83d1901202c8fac1aa9a3 100644 (file)
@@ -112,7 +112,7 @@ fts_tokenizer_address_parent_data(struct email_address_fts_tokenizer *tok,
                /* we're searching and we want to find only the full
                   user@domain (not "user" and "domain"). we'll do this by
                   not feeding the last user@domain to parent tokenizer. */
-               unsigned int parent_prefix_len =
+               size_t parent_prefix_len =
                        str_len(tok->parent_data) - str_len(tok->last_word);
                i_assert(str_len(tok->parent_data) >= str_len(tok->last_word) &&
                         strcmp(str_c(tok->parent_data) + parent_prefix_len,
index 224f250ad7436ba98aec3312a2042be8739dc729..467dac0973988bfd8c6b3b0317bdaa564fa3d4a7 100644 (file)
@@ -80,7 +80,8 @@ test_tokenizer_inputoutput(struct fts_tokenizer *tok, const char *_input,
 {
        const unsigned char *input = (const unsigned char *)_input;
        const char *token, *error;
-       unsigned int i, outi, max, char_len, input_len = strlen(_input);
+       unsigned int i, outi, max, char_len;
+       size_t input_len = strlen(_input);
 
        /* test all input at once */
        outi = first_outi;
index 15f9bb6a86808532439cd4a8cd598ede8b358272..9767f5d0c633b1a97622f4bd435fe5b7e039a9aa 100644 (file)
@@ -348,7 +348,7 @@ void http_client_request_remove_header(struct http_client_request *req,
 {
        const unsigned char *data, *p;
        size_t size, line_len, line_start_pos;
-       unsigned int key_len = strlen(key);
+       size_t key_len = strlen(key);
 
        i_assert(req->state == HTTP_REQUEST_STATE_NEW ||
                 /* allow calling for retries */
index daa7da6396c9d1666b692acea1c57775f028bdec..0f4e249e10b080fcb28754e8fea526b7f03c7b63 100644 (file)
@@ -806,7 +806,7 @@ imapc_connection_authenticate_cb(const struct imapc_command_reply *reply,
        struct imapc_connection *conn = context;
        const unsigned char *sasl_output;
        unsigned int sasl_output_len;
-       unsigned int input_len;
+       size_t input_len;
        buffer_t *buf;
        const char *error;
 
@@ -1980,7 +1980,8 @@ static void imapc_command_send_more(struct imapc_connection *conn)
        struct imapc_command *const *cmds, *cmd;
        struct imapc_command_reply reply;
        const unsigned char *p, *data;
-       unsigned int count, seek_pos, start_pos, end_pos, size;
+       unsigned int count, size;
+       size_t seek_pos, start_pos, end_pos;
        int ret;
 
        if (imapc_connection_is_throttled(conn))
@@ -2175,7 +2176,7 @@ bool imapc_command_connection_is_selected(struct imapc_command *cmd)
 
 void imapc_command_send(struct imapc_command *cmd, const char *cmd_str)
 {
-       unsigned int len = strlen(cmd_str);
+       size_t len = strlen(cmd_str);
 
        cmd->data = str_new(cmd->pool, 6 + len + 2);
        str_printfa(cmd->data, "%u %s\r\n", cmd->tag, cmd_str);
index 46551e7064d8766b6cfae4d654d1c90ddea7947e..0c445f11db7164bf1999ac5fc20135968137812d 100644 (file)
@@ -114,7 +114,8 @@ imap_match_init_multiple_real(pool_t pool, const char *const *patterns,
 {
        struct imap_match_glob *glob;
        struct imap_match_pattern *match_patterns;
-       unsigned int i, len, pos, patterns_count, patterns_data_len = 0;
+       unsigned int i, patterns_count;
+       size_t len, pos, patterns_data_len = 0;
 
        patterns_count = str_array_length(patterns);
        match_patterns = p_new(pool, struct imap_match_pattern,
index 6fb21f366ac6d123a99f67c448b27c6855ef86a3..82b5adafeefbad11d533208f08feb675898f1381 100644 (file)
@@ -542,7 +542,7 @@ static bool imap_parser_is_next_resp_text(struct imap_parser *parser)
 static bool imap_parser_is_next_text(struct imap_parser *parser)
 {
        const struct imap_arg *arg;
-       unsigned int len;
+       size_t len;
 
        if (parser->cur_list != &parser->root_list)
                return FALSE;
index a9eddee24528706009ac1cbec16f2c7fe302157c..aaf48cf12c5ff74b557499b5e17b270e1467b917 100644 (file)
@@ -44,15 +44,16 @@ void imap_append_astring(string_t *dest, const char *src)
 static void
 imap_append_literal(string_t *dest, const char *src, unsigned int pos)
 {
-       unsigned int full_len = pos + strlen(src+pos);
+       size_t full_len = pos + strlen(src+pos);
 
-       str_printfa(dest, "{%u}\r\n", full_len);
+       str_printfa(dest, "{%"PRIuSIZE_T"}\r\n", full_len);
        buffer_append(dest, src, full_len);
 }
 
 void imap_append_nstring(string_t *dest, const char *src)
 {
-       unsigned int i, escape_count = 0;
+       unsigned int escape_count = 0;
+       size_t i;
 
        if (src == NULL) {
                str_append(dest, "NIL");
index 86fc1d2123077c93159c2bfc27bc3987071e8e17..1a5504a7ecbc56fe5ada3d213def9488991d7d6b 100644 (file)
@@ -29,7 +29,7 @@ static const unsigned char imap_b64dec[256] = {
 };
 
 static void
-mbase64_encode(string_t *dest, const unsigned char *in, unsigned int len)
+mbase64_encode(string_t *dest, const unsigned char *in, size_t len)
 {
        str_append_c(dest, '&');
        while (len >= 3) {
index ea9bed03cbb2f8515aaf0b54925e6809b98af417..285ff0f927652f8d09e29d1d0f0feeb0c4a431ae 100644 (file)
@@ -460,7 +460,7 @@ lmtp_client_parse_capabilities(struct lmtp_client *client, const char *lines)
 static bool lmtp_client_send_xclient(struct lmtp_client *client)
 {
        string_t *str;
-       unsigned int empty_len;
+       size_t empty_len;
 
        if (client->xclient_args == NULL) {
                /* not supported */
index 66b0684a6db49427c9e32c36f481cceac931c2ac..0a1b78ffa4ad35694e6d17f2f6ddba5773454a12 100644 (file)
@@ -23,7 +23,7 @@ struct binary_converter_istream {
        unsigned int base64_block_pos;
 
        buffer_t *hdr_buf;
-       unsigned int cte_header_len;
+       size_t cte_header_len;
        bool content_type_seen:1;
 };
 
index 9c0788f137abe27a416b1123ca2bcc8536867180..0909d7c8234b342f338a377202f6ab0b4b9d348d 100644 (file)
@@ -27,7 +27,7 @@ struct message_decoder_context {
        char *charset_trans_charset;
        struct charset_translation *charset_trans;
        char translation_buf[CHARSET_MAX_PENDING_BUF_SIZE];
-       unsigned int translation_size;
+       size_t translation_size;
 
        struct qp_decoder *qp;
        buffer_t *encoding_buf;
@@ -201,7 +201,7 @@ static void translation_buf_decode(struct message_decoder_context *ctx,
                                   const unsigned char **data, size_t *size)
 {
        unsigned char trans_buf[CHARSET_MAX_PENDING_BUF_SIZE+1];
-       unsigned int data_wanted, skip;
+       size_t data_wanted, skip;
        size_t trans_size, orig_size;
 
        /* @UNSAFE: move the previously untranslated bytes to trans_buf
index 7d11154207bf634ac41fc66792a155ae9bb946b2..469629799fa512121e84936dbde00cb55c017192 100644 (file)
@@ -10,7 +10,7 @@
 
 static size_t
 message_header_decode_encoded(const unsigned char *data, size_t size,
-                             buffer_t *decodebuf, unsigned int *charsetlen_r)
+                             buffer_t *decodebuf, size_t *charsetlen_r)
 {
 #define QCOUNT 3
        unsigned int num = 0;
@@ -58,9 +58,9 @@ message_header_decode_encoded(const unsigned char *data, size_t size,
        return start_pos[2] + 2;
 }
 
-static bool is_only_lwsp(const unsigned char *data, unsigned int size)
+static bool is_only_lwsp(const unsigned char *data, size_t size)
 {
-       unsigned int i;
+       size_t i;
 
        for (i = 0; i < size; i++) {
                if (!(data[i] == ' ' || data[i] == '\t' ||
@@ -75,7 +75,7 @@ void message_header_decode(const unsigned char *data, size_t size,
                           void *context)
 {
        buffer_t *decodebuf = NULL;
-       unsigned int charsetlen = 0;
+       size_t charsetlen = 0;
        size_t pos, start_pos, ret;
 
        /* =?charset?Q|B?text?= */
index 7b6403fa0a0d0e30b0dc5a2dafde2a94ec9edcd1..b8f0173880b1f14fe145e422fe3bc9343c512162 100644 (file)
@@ -326,7 +326,7 @@ static void test_istream_attachment(void)
 
 static bool test_istream_attachment_extractor_one(const char *body)
 {
-       const unsigned int prefix_len = strlen(mail_broken_input_body_prefix);
+       const size_t prefix_len = strlen(mail_broken_input_body_prefix);
        struct istream_attachment_settings set;
        struct istream *datainput, *input;
        char *mail_text;
index a71fefd3bca5f594273814cf3ca72a106a5ad4b1..749bf6eb1d1b67226f4e06b44d6afa051c8ce078 100644 (file)
@@ -18,7 +18,8 @@ static void test_istream_dot_one(const struct dot_test *test,
        struct istream *test_input, *input;
        const unsigned char *data;
        size_t size;
-       unsigned int i, outsize, input_len, output_len;
+       unsigned int i;
+       size_t outsize, input_len, output_len;
        string_t *str;
        uoff_t offset;
        int ret;
@@ -111,7 +112,8 @@ static void test_istream_dot_one(const struct dot_test *test,
 static void test_istream_dot_error(const char *input_str, bool test_bufsize)
 {
        struct istream *test_input, *input;
-       unsigned int i, outsize, input_len;
+       unsigned int i;
+       size_t outsize, input_len;
        uoff_t offset;
        int ret;
 
index b9bd318ab1cbe7fab9dee25faae7a6281b6d144e..9d3a58d38b8149dab1bc66cc19e051a972c5e6e1 100644 (file)
@@ -32,7 +32,8 @@ test_istream_run(struct istream *test_istream,
 {
        struct run_ctx run_ctx = { .callback = callback, .null_hdr_seen = FALSE };
        struct istream *filter;
-       unsigned int i, output_len = strlen(output);
+       unsigned int i;
+       size_t output_len = strlen(output);
        const struct stat *st;
        const unsigned char *data;
        size_t size;
@@ -85,8 +86,9 @@ static void test_istream_filter(void)
        const char *input = "From: foo\nFrom: abc\nTo: bar\nSubject: plop\nX-Drop: 1\n\nhello world\n";
        const char *output = "From: abc\n\nhello world\n";
        struct istream *istream, *filter, *filter2;
-       unsigned int i, input_len = strlen(input);
-       unsigned int output_len = strlen(output);
+       unsigned int i;
+       size_t input_len = strlen(input);
+       size_t output_len = strlen(output);
        const unsigned char *data;
        const struct stat *st;
        size_t size;
@@ -388,8 +390,9 @@ static void test_istream_end_body_with_lf(void)
        const char *output = "From: foo\n\nhello world\n";
        const struct stat *st;
        struct istream *istream, *filter;
-       unsigned int i, input_len = strlen(input);
-       unsigned int output_len = strlen(output);
+       unsigned int i;
+       size_t input_len = strlen(input);
+       size_t output_len = strlen(output);
        const unsigned char *data;
        string_t *str = t_str_new(64);
        size_t size;
index 985b9c0a38324172845cc5e56ce14e842bd9429d..de64f851b2a1473fa1d7ccc29b14f5d74a1d8f92 100644 (file)
@@ -25,7 +25,7 @@ static void
 decode_test(const char *qp_input, const char *output, bool broken_input,
            unsigned int buffer_size)
 {
-       unsigned int qp_input_len = strlen(qp_input);
+       size_t qp_input_len = strlen(qp_input);
        struct istream *input_data, *input;
        const unsigned char *data;
        size_t i, size;
index 940e86dedd9667b85232d3fa2f182e1b2256981b..63652168138502e84721851e8f341855400e8555 100644 (file)
@@ -50,7 +50,8 @@ static void test_mbox_from_parse(void)
                { 0, 0, NULL, -1 },
                { 0, 0, NULL, -1 },
        };
-       unsigned int i, j, len;
+       unsigned int i, j;
+       size_t len;
        struct tm *tm;
        char *sender;
        bool success;
index 6cafa86bced883df45a397bcde8b993b4fde6e54..e74741493a6cd7eb821a9e567cac7f78bd0003e3 100644 (file)
@@ -203,7 +203,8 @@ test_message_header_parser_long_lines_str(const char *str,
        struct message_header_parser_ctx *parser;
        struct message_header_line *hdr;
        struct istream *input;
-       unsigned int i, len = strlen(str);
+       unsigned int i;
+       size_t len = strlen(str);
 
        input = test_istream_create(str);
        test_istream_set_max_buffer_size(input, buffer_size);
@@ -222,7 +223,7 @@ static void test_message_header_parser_long_lines(void)
        static const char *lf_str = "1234567890: 345\n\n";
        static const char *crlf_str = "1234567890: 345\r\n\r\n";
        struct message_size hdr_size;
-       unsigned int i, len;
+       size_t i, len;
 
        test_begin("message header parser long lines");
        len = strlen(lf_str);
index f78b5e621534c86337194d89ac3fcb0f72fc3565..4056c99099029481a88cf89412a5f3c438e119ec 100644 (file)
@@ -240,7 +240,7 @@ static void master_login_postlogin_input(struct master_login_postlogin *pl)
        struct master_login *login = pl->client->conn->login;
        char buf[1024];
        const char *const *auth_args;
-       unsigned int len;
+       size_t len;
        ssize_t ret;
        int fd = -1;
 
@@ -393,7 +393,7 @@ static void master_login_conn_input(struct master_login_connection *conn)
        struct master_login_client *client;
        struct master_login *login = conn->login;
        unsigned char data[MASTER_AUTH_MAX_DATA_SIZE];
-       unsigned int i, session_len = 0;
+       size_t i, session_len = 0;
        int ret, client_fd;
 
        ret = master_login_conn_read_request(conn, &req, data, &client_fd);
index 9294f059f3c2f05b9d98932dc9717f53da9bbf37..af48f2c9c047fbb8e639e634e533f66c37e11cc9 100644 (file)
@@ -1126,7 +1126,7 @@ bool version_string_verify_full(const char *line, const char *service_name,
                                unsigned major_version,
                                unsigned int *minor_version_r)
 {
-       unsigned int service_name_len = strlen(service_name);
+       size_t service_name_len = strlen(service_name);
        bool ret;
 
        if (strncmp(line, "VERSION\t", 8) != 0)
index dd5e5ce6c2b44e1cea4e549c4a99cd4e76ea8afd..3c5fe65d6a5e9ace96de8d7778aa5d0868300887 100644 (file)
@@ -237,7 +237,8 @@ int cydir_transaction_save_commit_pre(struct mail_save_context *_ctx)
        uint32_t uid;
        const char *dir;
        string_t *src_path, *dest_path;
-       unsigned int n, src_prefixlen, dest_prefixlen;
+       unsigned int n;
+       size_t src_prefixlen, dest_prefixlen;
 
        i_assert(ctx->finished);
 
index 71d5c6db3d56f6f2969d2e0a407734e673308906..3173bad5bc4d006db9b14c32007956b7ca4cd66c 100644 (file)
@@ -10,7 +10,7 @@ struct cydir_sync_context {
        struct mail_index_transaction *trans;
 
        string_t *path;
-       unsigned int path_dir_prefix_len;
+       size_t path_dir_prefix_len;
        uint32_t uid_validity;
 };
 
index 49bc44511dacfe01c1c30754304d2148ed7b8668..6e95954a0e1966781a9aff97bee357afcf059fde 100644 (file)
@@ -261,7 +261,7 @@ stream_copy(struct dbox_file *file, struct ostream *output,
 
 static void dbox_file_skip_broken_header(struct dbox_file *file)
 {
-       const unsigned int magic_len = strlen(DBOX_MAGIC_PRE);
+       const size_t magic_len = strlen(DBOX_MAGIC_PRE);
        const unsigned char *data;
        size_t i, size;
 
index 6c602c32901388756f52e7416a6224bdba3c5503..9a3a686a70468d969c76ddf1e7416cc7debfaaaf 100644 (file)
@@ -1191,7 +1191,7 @@ void mdbox_map_append_abort(struct mdbox_map_append_context *ctx)
 static int
 mdbox_find_highest_file_id(struct mdbox_map *map, uint32_t *file_id_r)
 {
-       const unsigned int prefix_len = strlen(MDBOX_MAIL_FILE_PREFIX);
+       const size_t prefix_len = strlen(MDBOX_MAIL_FILE_PREFIX);
        DIR *dir;
        struct dirent *d;
        unsigned int id, highest_id = 0;
index 5fe96b07cea5c4dc2de702445d8fc8695fcf6273..e0125a7454527b7cbf5e0b46091ff58b44b49bdd 100644 (file)
@@ -498,7 +498,8 @@ static int mdbox_purge_get_primary_files(struct mdbox_purge_context *ctx)
        DIR *dir;
        struct dirent *d;
        string_t *path;
-       unsigned int file_id, dir_len;
+       unsigned int file_id;
+       size_t dir_len;
        int ret = 0;
 
        if (!array_is_created(&dstorage->move_to_alt_map_uids) &&
index ff28d806ac8f093b875c4880fe3eb0cf1945634b..a34f87d538b51027b45fe9d1e22c768eeae06c8c 100644 (file)
@@ -357,7 +357,7 @@ imapc_list_get_vname(struct mailbox_list *_list, const char *storage_name)
 {
        struct imapc_mailbox_list *list = (struct imapc_mailbox_list *)_list;
        const char *prefix = list->set->imapc_list_prefix;
-       unsigned int prefix_len;
+       size_t prefix_len;
 
        if (*storage_name == '\0') {
                /* ACL plugin does these lookups */
@@ -419,7 +419,7 @@ imapc_list_get_fs_name(struct imapc_mailbox_list *list, const char *name)
        vname = mailbox_list_get_vname(&list->list, name);
        if (list->set->imapc_list_prefix[0] != '\0') {
                /* put back the prefix, so it gets included in the filesystem. */
-               unsigned int vname_len = strlen(vname);
+               size_t vname_len = strlen(vname);
 
                if (ns->prefix_len > 0) {
                        /* skip over the namespace prefix */
@@ -499,7 +499,7 @@ static void imapc_list_delete_unused_indexes(struct imapc_mailbox_list *list)
        struct mailbox_list_iterate_context *iter;
        const struct mailbox_info *info;
        const char *imapc_list_prefix = list->set->imapc_list_prefix;
-       unsigned int imapc_list_prefix_len = strlen(imapc_list_prefix);
+       size_t imapc_list_prefix_len = strlen(imapc_list_prefix);
        const char *fs_name, *vname;
 
        if (fs_list == NULL)
index 4dc9544acd18b41f7d4fa73afa12c32aac70e880..c778eee064d12d8e25a23a104c2a710ec7c7591c 100644 (file)
@@ -102,7 +102,7 @@ imapc_build_search_query_arg(struct imapc_mailbox *mbox,
        case SEARCH_SINCE:
                if ((capa & IMAPC_CAPABILITY_WITHIN) == 0) {
                        /* a bit kludgy way to check this.. */
-                       unsigned int pos = str_len(str);
+                       size_t pos = str_len(str);
                        if (!mail_search_arg_to_imap(str, arg, &error))
                                return FALSE;
                        if (strncasecmp(str_c(str) + pos, "OLDER", 5) == 0 ||
index d63db3f3802222085fabf3c6b341d57d6c687807..62c03c0f0e166796b26139a97da8e28892159287 100644 (file)
@@ -960,7 +960,7 @@ static const struct imapc_namespace *
 imapc_namespace_find_mailbox(struct imapc_storage *storage, const char *name)
 {
        const struct imapc_namespace *ns, *best_ns = NULL;
-       unsigned int best_len = UINT_MAX, len;
+       size_t best_len = UINT_MAX, len;
 
        array_foreach(&storage->remote_namespaces, ns) {
                len = strlen(ns->prefix);
index f7f65864118198819d25bf71e9724a500f63ec35..da84463cae179423969e300c50dd368a9cfc4fc9 100644 (file)
@@ -9,7 +9,7 @@ struct index_storage_attribute_iter {
        struct mailbox_attribute_iter iter;
        struct dict_iterate_context *diter;
        char *prefix;
-       unsigned int prefix_len;
+       size_t prefix_len;
        bool dict_disabled;
 };
 
index 54e34b016e0ce98bf9af5c7b09087b58910d930f..cc0a415c0c91fc5f0ec25445c1e404b46fc32a77 100644 (file)
@@ -729,7 +729,7 @@ static int unfold_header(pool_t pool, const char **_str)
 static void str_replace_nuls(string_t *str)
 {
        char *data = str_c_modifiable(str);
-       unsigned int i, len = str_len(str);
+       size_t i, len = str_len(str);
 
        for (i = 0; i < len; i++) {
                if (data[i] == '\0')
index 640bb5d4eb28b87e6e4b30653216f738e116bc50..e88fad80f9c0e587900b137ee0139fc669fdd249 100644 (file)
@@ -446,9 +446,9 @@ msg_search_arg_context(struct index_search_context *ctx,
 }
 
 static void compress_lwsp(string_t *dest, const unsigned char *src,
-                         unsigned int src_len)
+                         size_t src_len)
 {
-       unsigned int i;
+       size_t i;
        bool prev_lwsp = TRUE;
 
        for (i = 0; i < src_len; i++) {
index dc4b7144817a346fc9ed5f071ac2453c93780335..bded618650cf3fae5d0ceabdabe36e5e2a7b97d1 100644 (file)
@@ -388,7 +388,7 @@ get_display_name(struct mail *mail, const char *header, const char **name_r)
 
        if (addr->name != NULL) {
                string_t *str;
-               unsigned int len = strlen(addr->name);
+               size_t len = strlen(addr->name);
 
                str = t_str_new(len*2);
                (void)message_header_decode_utf8(
index d7b39099834eed316667a9950241a5d744405261..7d7575bbc521f75a48fca972e2d4304bda724f6f 100644 (file)
@@ -73,7 +73,8 @@ maildir_filename_append_keywords(struct maildir_keywords_sync_ctx *ctx,
                                 string_t *fname)
 {
        const unsigned int *indexes;
-       unsigned int i, count, start = str_len(fname);
+       unsigned int i, count;
+       size_t start = str_len(fname);
        char chr;
 
        indexes = array_get(keywords, &count);
index f5af9697b8cc5949e1b9a3ac852fb6387ed88ab9..4b6816cd2280c43168b61ec5841de40edec4ce27 100644 (file)
@@ -348,7 +348,7 @@ static int maildir_create_tmp(struct maildir_mailbox *mbox, const char *dir,
 {
        struct mailbox *box = &mbox->box;
        const struct mailbox_permissions *perm = mailbox_get_permissions(box);
-       unsigned int prefix_len;
+       size_t prefix_len;
        const char *tmp_fname;
        string_t *path;
        mode_t old_mask;
index df132226b7977e4455b904902ac1922ae8058437..f429e907d848992b6772080ae6c187ef085cd69e 100644 (file)
@@ -1149,7 +1149,7 @@ maildir_uidlist_rec_set_ext(struct maildir_uidlist_rec *rec, pool_t pool,
 {
        const unsigned char *p;
        buffer_t *buf;
-       unsigned int len;
+       size_t len;
 
        /* copy existing extensions, except for the one we're updating */
        buf = buffer_create_dynamic(pool_datastack_create(), 128);
@@ -1250,7 +1250,7 @@ static int maildir_uidlist_write_fd(struct maildir_uidlist *uidlist, int fd,
        string_t *str;
        const unsigned char *p;
        const char *strp;
-       unsigned int len;
+       size_t len;
 
        i_assert(fd != -1);
 
index 8df1e2f0553b2c9bed73fec37e24a69d82963c21..12fcc8b9f123cb81e521f34195e0caa0664e7822 100644 (file)
@@ -689,7 +689,7 @@ static bool
 mbox_is_internal_name(struct mailbox_list *list ATTR_UNUSED,
                      const char *name)
 {
-       unsigned int len;
+       size_t len;
 
        /* don't allow *.lock files/dirs */
        len = strlen(name);
index 325e11420d9e9d2d6c82d04fcd04c529ac058e8c..03371e0babf1587fb7fc3be6be0b912213cc373d 100644 (file)
@@ -91,7 +91,7 @@ shared_list_join_refpattern(struct mailbox_list *list,
 {
        struct mail_namespace *ns = list->ns;
        const char *ns_ref, *prefix = list->ns->prefix;
-       unsigned int prefix_len = strlen(prefix);
+       size_t prefix_len = strlen(prefix);
 
        if (*ref != '\0' && strncmp(ref, prefix, prefix_len) == 0)
                ns_ref = ref + prefix_len;
index 7ef4a07f237a691de622dbb7dfacd2eb53bd44a7..a177a0fa30b68d33f392fa9dcc7c695401c17f65 100644 (file)
@@ -144,7 +144,7 @@ int mailbox_list_delete_mailbox_nonrecursive(struct mailbox_list *list,
        DIR *dir;
        struct dirent *d;
        string_t *full_path;
-       unsigned int dir_len;
+       size_t dir_len;
        const char *error;
        bool mailbox_dir, unlinked_something = FALSE;
 
@@ -236,7 +236,7 @@ void mailbox_list_delete_until_root(struct mailbox_list *list, const char *path,
                                    enum mailbox_list_path_type type)
 {
        const char *root_dir, *p;
-       unsigned int len;
+       size_t len;
 
        root_dir = mailbox_list_get_root_forced(list, type);
        if (strncmp(path, root_dir, strlen(root_dir)) != 0) {
index 57661e10b6f9f03613282f58978e4cc4e799f577..cd41d96d0c0f3afd92c7d64409fc9399c99ceb1d 100644 (file)
@@ -338,7 +338,7 @@ fs_list_get_valid_patterns(struct fs_list_iterate_context *ctx,
        struct mailbox_list *_list = ctx->ctx.list;
        ARRAY(const char *) valid_patterns;
        const char *pattern, *test_pattern, *real_pattern, *error;
-       unsigned int prefix_len;
+       size_t prefix_len;
 
        prefix_len = strlen(_list->ns->prefix);
        p_array_init(&valid_patterns, ctx->ctx.pool, 8);
@@ -378,7 +378,8 @@ static void fs_list_get_roots(struct fs_list_iterate_context *ctx)
                ctx->ctx.list->mail_set->mail_full_filesystem_access;
        const char *const *patterns, *pattern, *const *parentp, *const *childp;
        const char *p, *last, *root, *prefix_vname;
-       unsigned int i, parentlen;
+       unsigned int i;
+       size_t parentlen;
 
        i_assert(*ctx->valid_patterns != NULL);
 
index cf8d7ccf179f27c2920282a6b9c936d6ba251a40..757c1eb55bc2e4ea8c800fb0d3c857466bdee5d8 100644 (file)
@@ -530,8 +530,8 @@ static int index_list_mailbox_open(struct mailbox *box)
        /* Get the current mailbox name with \0 separators. */
        char sep = mailbox_list_get_hierarchy_sep(box->list);
        char *box_zerosep_name = t_strdup_noconst(box->name);
-       unsigned int box_name_len = strlen(box_zerosep_name);
-       for (unsigned int i = 0; i < box_name_len; i++) {
+       size_t box_name_len = strlen(box_zerosep_name);
+       for (size_t i = 0; i < box_name_len; i++) {
                if (box_zerosep_name[i] == sep)
                        box_zerosep_name[i] = '\0';
        }
@@ -697,7 +697,7 @@ index_list_rename_mailbox(struct mailbox_list *_oldlist, const char *oldname,
                          struct mailbox_list *_newlist, const char *newname)
 {
        struct index_mailbox_list *list = (struct index_mailbox_list *)_oldlist;
-       const unsigned int oldname_len = strlen(oldname);
+       const size_t oldname_len = strlen(oldname);
        struct mailbox_list_index_sync_context *sync_ctx;
        struct mailbox_list_index_record oldrec, newrec;
        struct mailbox_list_index_node *oldnode, *newnode, *child;
index 97655782b646ab3b22db545040879724d2cde85d..a46436b4c20644b8b5018edf16e23294e43ea1e0 100644 (file)
@@ -128,7 +128,7 @@ struct mailbox_list_index_iterate_context {
        struct mailbox_info info;
        pool_t info_pool;
 
-       unsigned int parent_len;
+       size_t parent_len;
        string_t *path;
        struct mailbox_list_index_node *next_node;
 
index 2a7c4758eb7cabf44a946f24451bd4b6a12dec60..9063afb2ae2b810a2998b5259848e5fa94ffc359 100644 (file)
@@ -255,7 +255,7 @@ static bool ns_match_next(struct ns_list_iterate_context *ctx,
        struct imap_match_glob *glob;
        enum imap_match_result result;
        const char *prefix_without_sep;
-       unsigned int len;
+       size_t len;
 
        len = ns->prefix_len;
        if (len > 0 && ns->prefix[len-1] == mail_namespace_get_sep(ns))
@@ -375,7 +375,7 @@ ns_prefix_has_visible_child_namespace(struct ns_list_iterate_context *ctx,
                                      const char *prefix)
 {
        struct mail_namespace *ns;
-       unsigned int prefix_len = strlen(prefix);
+       size_t prefix_len = strlen(prefix);
        int ret;
 
        for (ns = ctx->namespaces; ns != NULL; ns = ns->next) {
@@ -789,7 +789,8 @@ autocreate_box_match(const ARRAY_TYPE(mailbox_settings) *boxes,
                     bool only_subscribed, unsigned int *idx_r)
 {
        struct mailbox_settings *const *sets;
-       unsigned int i, count, len, name_len = strlen(name);
+       unsigned int i, count;
+       size_t len, name_len = strlen(name);
        enum autocreate_match_result result = 0;
        char sep = mail_namespace_get_sep(ns);
 
@@ -879,7 +880,7 @@ autocreate_iter_existing(struct mailbox_list_iterate_context *ctx)
                /* there are autocreate parent boxes.
                   set their children flag states. */
                struct autocreate_box *autobox;
-               unsigned int name_len;
+               size_t name_len;
                char sep = mail_namespace_get_sep(ctx->list->ns);
 
                array_foreach_modifiable(&actx->boxes, autobox) {
index a9b671dfe95257c04ec453fe8faa9c976e825789..55f3c99a17c201d069c8c716cfde541d0236ccaa 100644 (file)
@@ -51,7 +51,7 @@ maildir_fill_parents(struct maildir_list_iterate_context *ctx,
        struct mail_namespace *ns = ctx->ctx.list->ns;
        struct mailbox_node *node;
        const char *p;
-       unsigned int vname_len = strlen(vname);
+       size_t vname_len = strlen(vname);
        bool created;
        char ns_sep = mail_namespace_get_sep(ns);
 
index e184c08d7745fce96b9773d0dd02260925b73844..d164ebe09243743bdf50395a03576ba819d4584d 100644 (file)
@@ -307,7 +307,8 @@ maildir_rename_children(struct mailbox_list *oldlist, const char *oldname,
        ARRAY(const char *) names_arr;
        const char *pattern, *oldpath, *newpath, *old_childname, *new_childname;
        const char *const *names, *old_vname, *new_vname;
-       unsigned int i, count, old_vnamelen;
+       unsigned int i, count;
+       size_t old_vnamelen;
        pool_t pool;
        char old_ns_sep;
        int ret;
index 8471b2fdda6d12dcadd52de4aa45712afa9ae041..b2791188a171850d723bbe34dd9543e7d4200cf9 100644 (file)
@@ -44,7 +44,7 @@ mailbox_list_notify_node_build(struct mailbox_list_notify_tree *tree,
 {
        struct mailbox_node *node;
        struct mailbox_notify_node *nnode;
-       unsigned int prefix_len;
+       size_t prefix_len;
        bool created;
 
        str_append(path, index_node->name);
index 0b403fdb3a6bcbf16504dbb318aa05d6f99c7930..03473bad833ad4468d53e6118bfeab33937b8b66 100644 (file)
@@ -28,7 +28,7 @@ mailbox_list_subscription_fill_one(struct mailbox_list *list,
        struct mail_namespace *namespaces = default_ns->user->namespaces;
        struct mailbox_node *node;
        const char *vname, *ns_name, *error;
-       unsigned int len;
+       size_t len;
        bool created;
 
        /* default_ns is whatever namespace we're currently listing.
index 1eea385ddab2f6565277b095427275d1bd2370ed..2d3214b35315ba7d4ce2ba6220dfa969d6a220a3 100644 (file)
@@ -649,7 +649,7 @@ mail_namespace_find_mask(struct mail_namespace *namespaces, const char *box,
 {
         struct mail_namespace *ns = namespaces;
        struct mail_namespace *best = NULL;
-       unsigned int best_len = 0;
+       size_t best_len = 0;
        bool inbox;
 
        inbox = strncasecmp(box, "INBOX", 5) == 0;
@@ -764,7 +764,7 @@ mail_namespace_find_prefix(struct mail_namespace *namespaces,
                           const char *prefix)
 {
         struct mail_namespace *ns;
-       unsigned int len = strlen(prefix);
+       size_t len = strlen(prefix);
 
        for (ns = namespaces; ns != NULL; ns = ns->next) {
                if (ns->prefix_len == len &&
@@ -779,7 +779,7 @@ mail_namespace_find_prefix_nosep(struct mail_namespace *namespaces,
                                 const char *prefix)
 {
         struct mail_namespace *ns;
-       unsigned int len = strlen(prefix);
+       size_t len = strlen(prefix);
 
        for (ns = namespaces; ns != NULL; ns = ns->next) {
                if (ns->prefix_len == len + 1 &&
index fc003fea4d1a95f6c731d4ee8670c668157c72f5..32588f1c1c75e7bea274a9ae453dadfc4947d4da 100644 (file)
@@ -138,7 +138,7 @@ static int set_line(struct mail_storage_service_ctx *ctx,
        struct setting_parser_context *set_parser = user->set_parser;
        bool mail_debug;
        const char *key, *orig_key, *append_value = NULL;
-       unsigned int len;
+       size_t len;
        int ret;
 
        mail_debug = mail_user_set_get_mail_debug(user->user_info,
@@ -777,7 +777,8 @@ const char *mail_storage_service_fields_var_expand(const char *data,
                                                   const char *const *fields)
 {
        const char *field_name = t_strcut(data, ':');
-       unsigned int i, field_name_len;
+       unsigned int i;
+       size_t field_name_len;
 
        if (fields == NULL)
                return field_get_default(data);
@@ -1139,7 +1140,7 @@ static const char *
 mail_storage_service_generate_session_id(pool_t pool, const char *prefix)
 {
        guid_128_t guid;
-       unsigned int prefix_len = prefix == NULL ? 0 : strlen(prefix);
+       size_t prefix_len = prefix == NULL ? 0 : strlen(prefix);
        string_t *str = str_new(pool, MAX_BASE64_ENCODED_SIZE(prefix_len + 1 + sizeof(guid)));
 
        if (prefix != NULL)
@@ -1362,7 +1363,7 @@ mail_storage_service_next_real(struct mail_storage_service_ctx *ctx,
 {
        struct mail_storage_service_privileges priv;
        const char *error;
-       unsigned int len;
+       size_t len;
        bool disallow_root =
                (user->flags & MAIL_STORAGE_SERVICE_FLAG_DISALLOW_ROOT) != 0;
        bool temp_priv_drop =
index d6a39941ad504c7d29bf3ed953c9e9ceb137041a..d2e10a582e1cbdf0f4b23af7c5acd2840f778ba7 100644 (file)
@@ -1014,7 +1014,7 @@ int mailbox_verify_create_name(struct mailbox *box)
 static bool have_listable_namespace_prefix(struct mail_namespace *ns,
                                           const char *name)
 {
-       unsigned int name_len = strlen(name);
+       size_t name_len = strlen(name);
 
        for (; ns != NULL; ns = ns->next) {
                if ((ns->flags & (NAMESPACE_FLAG_LIST_PREFIX |
index f3ddd772f858498d21467e633a4b1538de108c9a..c3339b31a2701192aee92b8b925db0f6b709175d 100644 (file)
@@ -524,7 +524,7 @@ mail_user_try_load_class_plugin(struct mail_user *user, const char *name)
 {
        struct module_dir_load_settings mod_set;
        struct module *module;
-       unsigned int name_len = strlen(name);
+       size_t name_len = strlen(name);
 
        memset(&mod_set, 0, sizeof(mod_set));
        mod_set.abi_version = DOVECOT_ABI_VERSION;
index 27928f93cd64818f6f9948cfcb9ac09048377a01..ad1a5ac2cf5d7b97483143c16b1217a9738c83bb 100644 (file)
@@ -407,7 +407,7 @@ const char *mailbox_list_get_unexpanded_path(struct mailbox_list *list,
 
 static bool need_escape_dirstart(const char *vname, const char *maildir_name)
 {
-       unsigned int len;
+       size_t len;
 
        if (vname[0] == '.') {
                if (vname[1] == '\0' || vname[1] == '/')
@@ -429,7 +429,7 @@ mailbox_list_escape_name_params(const char *vname, const char *ns_prefix,
                                char ns_sep, char list_sep, char escape_char,
                                const char *maildir_name)
 {
-       unsigned int ns_prefix_len = strlen(ns_prefix);
+       size_t ns_prefix_len = strlen(ns_prefix);
        string_t *escaped_name = t_str_new(64);
        bool dirstart = TRUE;
 
@@ -523,7 +523,7 @@ const char *mailbox_list_default_get_storage_name(struct mailbox_list *list,
                                                  const char *vname)
 {
        struct mail_namespace *ns = list->ns;
-       unsigned int prefix_len = strlen(ns->prefix);
+       size_t prefix_len = strlen(ns->prefix);
        const char *storage_name = vname;
        string_t *str;
        char list_sep, ns_sep, *ret;
@@ -605,7 +605,7 @@ const char *
 mailbox_list_unescape_name_params(const char *src, const char *ns_prefix,
                                  char ns_sep, char list_sep, char escape_char)
 {
-       unsigned int ns_prefix_len = strlen(ns_prefix);
+       size_t ns_prefix_len = strlen(ns_prefix);
        string_t *dest = t_str_new(strlen(src));
        unsigned int num;
 
@@ -683,7 +683,7 @@ mailbox_list_escape_broken_name(struct mailbox_list *list,
 const char *mailbox_list_default_get_vname(struct mailbox_list *list,
                                           const char *storage_name)
 {
-       unsigned int i, prefix_len, name_len;
+       size_t i, prefix_len, name_len;
        const char *vname = storage_name;
        char list_sep, ns_sep, *ret;
 
@@ -1426,7 +1426,7 @@ int mailbox_list_mailbox(struct mailbox_list *list, const char *name,
                         enum mailbox_info_flags *flags_r)
 {
        const char *path, *fname, *rootdir, *dir, *inbox;
-       unsigned int len;
+       size_t len;
 
        *flags_r = 0;
 
@@ -1732,7 +1732,7 @@ bool mailbox_list_try_get_absolute_path(struct mailbox_list *list,
                                        const char **name)
 {
        const char *root_dir, *path, *mailbox_name;
-       unsigned int len;
+       size_t len;
 
        if (!list->mail_set->mail_full_filesystem_access)
                return FALSE;
index 3afdcff71874929be50ac0daab55fd62584e4daf..23708f0b2fc4e78b6106e2fa0361bc0036d8b152 100644 (file)
@@ -205,7 +205,7 @@ mailbox_tree_iterate_set_next_node(struct mailbox_tree_iterate_context *ctx)
                nodes = array_get(&ctx->node_path, &count);
                node = NULL;
                for (i = count; i != 0; i--) {
-                       unsigned int len = strlen(nodes[i-1]->name) + 1;
+                       size_t len = strlen(nodes[i-1]->name) + 1;
 
                        i_assert(len <= ctx->parent_pos);
                        ctx->parent_pos -= len;
index d89f7a1a1db1cb8d18f168ccfa0c6ecad448b7e6..0506436c3f0db1db11c9533e889bf9d8dc8fe509 100644 (file)
@@ -75,7 +75,8 @@ mailbox_uidvalidity_rename(const char *path, uint32_t *uid_validity,
                           bool log_enoent)
 {
        string_t *src, *dest;
-       unsigned int i, prefix_len;
+       unsigned int i;
+       size_t prefix_len;
        int ret;
 
        src = t_str_new(256);
@@ -111,7 +112,8 @@ mailbox_uidvalidity_next_rescan(struct mailbox_list *list, const char *path)
        DIR *d;
        struct dirent *dp;
        const char *fname, *dir, *prefix, *tmp;
-       unsigned int i, prefix_len;
+       unsigned int i;
+       size_t prefix_len;
        uint32_t cur_value, min_value, max_value;
        mode_t old_mask;
        int fd;
index fa0959c6e5c9b5856d2af4514268127648060426..9818fb6c824d8d35d908100cf628fe908f2a36c8 100644 (file)
@@ -50,7 +50,8 @@ bool array_cmp_i(const struct array *array1, const struct array *array2)
 bool array_equal_fn_i(const struct array *array1, const struct array *array2,
                      int (*cmp)(const void *, const void*))
 {
-       unsigned int count1, count2, i, size;
+       unsigned int count1, count2, i;
+       size_t size;
 
        if (!array_is_created_i(array1) || array1->buffer->used == 0)
                return !array_is_created_i(array2) || array2->buffer->used == 0;
@@ -77,7 +78,8 @@ bool array_equal_fn_ctx_i(const struct array *array1, const struct array *array2
                          int (*cmp)(const void *, const void *, const void *),
                          const void *context)
 {
-       unsigned int count1, count2, i, size;
+       unsigned int count1, count2, i;
+       size_t size;
 
        if (!array_is_created_i(array1) || array1->buffer->used == 0)
                return !array_is_created_i(array2) || array2->buffer->used == 0;
@@ -144,7 +146,7 @@ const void *array_lsearch_i(const struct array *array, const void *key,
                            int (*cmp)(const void *, const void *))
 {
        const void * const data = array->buffer->data;
-       const unsigned int s = array->element_size;
+       const size_t s = array->element_size;
        unsigned int idx;
 
        for (idx = 0; idx < array_count_i(array); idx++) {
index afbfa9adec9fa6b6508f0b0955ce32a558d4ee2b..3e9bde190b6aaad644ab6161324e4d49baa914a3 100644 (file)
@@ -36,7 +36,7 @@ void env_remove(const char *name)
 #endif
 #else
        extern char **environ;
-       unsigned int len;
+       size_t len;
        char **envp;
 
        len = strlen(name);
index bd358a8d275f51d9068834d6189d9ff7a22a1c2c..f0ed869e14131bec64703e4194472f2661c30902 100644 (file)
@@ -102,7 +102,7 @@ static void log_fd_flush_stop(struct ioloop *ioloop)
        io_loop_stop(ioloop);
 }
 
-static int log_fd_write(int fd, const unsigned char *data, unsigned int len)
+static int log_fd_write(int fd, const unsigned char *data, size_t len)
 {
        struct ioloop *ioloop;
        struct io *io;
@@ -551,10 +551,10 @@ const char *i_get_failure_prefix(void)
        return log_prefix != NULL ? log_prefix : "";
 }
 
-static int internal_send_split(string_t *full_str, unsigned int prefix_len)
+static int internal_send_split(string_t *full_str, size_t prefix_len)
 {
        string_t *str;
-       unsigned int max_text_len, pos = prefix_len;
+       size_t max_text_len, pos = prefix_len;
 
        str = t_str_new(PIPE_BUF);
        str_append_n(str, str_c(full_str), prefix_len);
@@ -588,7 +588,7 @@ internal_handler(const struct failure_context *ctx,
        recursed++;
        T_BEGIN {
                string_t *str;
-               unsigned int prefix_len;
+               size_t prefix_len;
 
                if (!log_prefix_sent && log_prefix != NULL) {
                        log_prefix_sent = TRUE;
index b63c12e32b47befa815140dc69ab2479515d0ce8..9f0131f1277f2e634d36e80b62ff74889611a302 100644 (file)
@@ -10,7 +10,7 @@ struct base64_encoder_istream {
        struct istream_private istream;
 
        /* current encoded line length. */
-       unsigned int cur_line_len;
+       size_t cur_line_len;
 
        unsigned int chars_per_line;
        bool crlf;
index 4e6afbf85c12167699ea915ec2d326818a45686b..67747598338dca5a841167bfb4d468bc13e1181d 100644 (file)
@@ -330,7 +330,7 @@ static int json_parse_number(struct json_parser *parser, const char **value_r)
 
 static int json_parse_atom(struct json_parser *parser, const char *atom)
 {
-       unsigned int avail, len = strlen(atom);
+       size_t avail, len = strlen(atom);
 
        avail = parser->end - parser->data;
        if (avail < len) {
@@ -716,7 +716,7 @@ void json_append_escaped(string_t *dest, const char *src)
 
 void json_append_escaped_data(string_t *dest, const unsigned char *src, size_t size)
 {
-       unsigned int i;
+       size_t i;
 
        for (i = 0; i < size; i++)
                json_append_escaped_char(dest, src[i]);
index f5fc4ac58ac89ac86f14a4d6d777c58c6a5aa361..75ea0116339000044fe55d340cb43ecc37c6c939 100644 (file)
@@ -112,7 +112,7 @@ module_check_missing_plugin_dependencies(const struct module_dir_load_settings *
        const char **deps;
        struct module *m;
        string_t *errmsg;
-       unsigned int len;
+       size_t len;
 
        deps = dlsym(module->handle,
                     t_strconcat(module->name, "_dependencies", NULL));
@@ -320,7 +320,7 @@ static void check_duplicates(ARRAY_TYPE(const_string) *names,
 struct module *module_dir_find(struct module *modules, const char *name)
 {
        struct module *module;
-       unsigned int len = strlen(name);
+       size_t len = strlen(name);
 
        for (module = modules; module != NULL; module = module->next) {
                if (strncmp(module->name, name, len) == 0) {
@@ -675,7 +675,7 @@ const char *module_file_get_name(const char *fname)
 
 static const char *module_name_drop_suffix(const char *name)
 {
-       unsigned int len;
+       size_t len;
 
        len = strlen(name);
        if (len > 7 && strcmp(name + len - 7, "_plugin") == 0)
index 9c3ac2ccaa9ebe75b278ecc7d1650a09767757dd..75e42a075c70fcf4df29451a07c134f7454ba0e6 100644 (file)
@@ -901,7 +901,7 @@ int net_addr2ip(const char *addr, struct ip_addr *ip)
                T_BEGIN {
                        if (addr[0] == '[') {
                                /* allow [ipv6 addr] */
-                               unsigned int len = strlen(addr);
+                               size_t len = strlen(addr);
                                if (addr[len-1] == ']')
                                        addr = t_strndup(addr+1, len-2);
                        }
index 7fc4c27ea6c7fc2fe2b01a6eff725d4444de3c33..7de3831a7ae43acb6ce9e4eab5d31ddac7c8db1d 100644 (file)
@@ -666,7 +666,7 @@ o_stream_file_write_at(struct ostream_private *stream,
                                   of it in one pwrite(). */
                        } else {
                                /* write only the suffix */
-                               unsigned int update_count = size - left;
+                               size_t update_count = size - left;
 
                                data = CONST_PTR_OFFSET(data, update_count);
                                size -= update_count;
index 347aae67186e680e2975aa997d725d12b855b514..2ba9bde0b5717f61d6c317cd1a37893da2547a5b 100644 (file)
@@ -4,11 +4,11 @@
 #include "printf-format-fix.h"
 
 static const char *
-fix_format_real(const char *fmt, const char *p, unsigned int *len_r)
+fix_format_real(const char *fmt, const char *p, size_t *len_r)
 {
        const char *errstr;
        char *buf;
-       unsigned int len1, len2, len3;
+       size_t len1, len2, len3;
 
        i_assert((size_t)(p - fmt) < INT_MAX);
        i_assert(p[0] == '%' && p[1] == 'm');
@@ -33,7 +33,7 @@ fix_format_real(const char *fmt, const char *p, unsigned int *len_r)
 }
 
 static const char *
-printf_format_fix_noalloc(const char *format, unsigned int *len_r)
+printf_format_fix_noalloc(const char *format, size_t *len_r)
 {
        const char *p;
        const char *ret = format;
@@ -60,7 +60,7 @@ printf_format_fix_noalloc(const char *format, unsigned int *len_r)
        return ret;
 }
 
-const char *printf_format_fix_get_len(const char *format, unsigned int *len_r)
+const char *printf_format_fix_get_len(const char *format, size_t *len_r)
 {
        const char *ret;
 
@@ -73,7 +73,7 @@ const char *printf_format_fix_get_len(const char *format, unsigned int *len_r)
 const char *printf_format_fix(const char *format)
 {
        const char *ret;
-       unsigned int len;
+       size_t len;
 
        ret = printf_format_fix_noalloc(format, &len);
        if (ret != format)
@@ -83,7 +83,7 @@ const char *printf_format_fix(const char *format)
 
 const char *printf_format_fix_unsafe(const char *format)
 {
-       unsigned int len;
+       size_t len;
 
        return printf_format_fix_noalloc(format, &len);
 }
index 3b638377b2707370ba1a8c6763056b488b418941..5691a0708e35473d19b0241747c1b7702e48e76f 100644 (file)
@@ -5,7 +5,7 @@
    used. If the format string was modified, it's returned from data stack. */
 const char *printf_format_fix(const char *format) ATTR_FORMAT_ARG(1);
 /* Like printf_format_fix(), except return also the format string's length. */
-const char *printf_format_fix_get_len(const char *format, unsigned int *len_r)
+const char *printf_format_fix_get_len(const char *format, size_t *len_r)
        ATTR_FORMAT_ARG(1);
 /* Like printf_format_fix(), except the format string is written to data
    stack without actually allocating it. Data stack must not be used until
index daacfebcae34b5c40bdbe9de724df998a7618901..44bf3c58a416f477fe3f34c09e316854198b0a8f 100644 (file)
@@ -78,9 +78,10 @@ static void init_goodtab(struct str_find_context *ctx)
 struct str_find_context *str_find_init(pool_t pool, const char *key)
 {
        struct str_find_context *ctx;
-       unsigned int key_len = strlen(key);
+       size_t key_len = strlen(key);
 
        i_assert(key_len > 0);
+       i_assert(key_len < INT_MAX);
 
        ctx = p_malloc(pool, sizeof(struct str_find_context) +
                       sizeof(ctx->goodtab[0]) * key_len);
index a410153a7c644e981c4ddc7d454d81923d2e88f6..5fb6add31e255a45ca98cda3b40afdc630a069e5 100644 (file)
@@ -25,7 +25,7 @@ static size_t str_sanitize_skip_start(const char *src, size_t max_bytes)
 static void str_sanitize_truncate_char(string_t *dest, unsigned int initial_pos)
 {
        const unsigned char *data = str_data(dest);
-       unsigned int len = str_len(dest);
+       size_t len = str_len(dest);
 
        if (len == initial_pos)
                return;
@@ -44,7 +44,7 @@ static void str_sanitize_truncate_char(string_t *dest, unsigned int initial_pos)
 
 void str_sanitize_append(string_t *dest, const char *src, size_t max_bytes)
 {
-       unsigned int initial_pos = str_len(dest);
+       size_t initial_pos = str_len(dest);
        unichar_t chr;
        size_t i;
 
index 3a5c92dd06f1ecb35bb27bf8ce0d0be1288af0c5..f093c13caeb1fb350b887ebfbfa2b51c356146fe 100644 (file)
@@ -108,7 +108,7 @@ void str_vprintfa(string_t *str, const char *fmt, va_list args)
 #define SNPRINTF_INITIAL_EXTRA_SIZE 128
        va_list args2;
        char *tmp;
-       unsigned int init_size;
+       size_t init_size;
        size_t pos = str->used;
        int ret, ret2;
 
index 0fa45beeb27cffd0495dccfc33239520d35560df..1e8d41c43d5fa8557430ad1201b140a8627ecbd4 100644 (file)
@@ -118,7 +118,7 @@ char *t_noalloc_strdup_vprintf(const char *format, va_list args,
 #define SNPRINTF_INITIAL_EXTRA_SIZE 256
        va_list args2;
        char *tmp;
-       unsigned int init_size;
+       size_t init_size;
        int ret;
 #ifdef DEBUG
        int old_errno = errno;
@@ -301,7 +301,7 @@ const char *t_strcut(const char *str, char cutchar)
 const char *t_str_replace(const char *str, char from, char to)
 {
        char *out;
-       unsigned int i, len;
+       size_t i, len;
 
        if (strchr(str, from) == NULL)
                return str;
index 26fb5b7eb21e670d94853ffafbc1a64ec3ebfa27..f5642f5140ba6ab6bdbc9aa9c058ddc829f8bc15 100644 (file)
@@ -24,7 +24,7 @@ static void test_unchanged()
 
        test_begin("printf_format_fix(safe)");
        for (i = 0; i < N_ELEMENTS(tests); ++i) {
-               unsigned int len;
+               size_t len;
                T_BEGIN {
                        test_assert_idx(printf_format_fix(tests[i])
                                        == tests[i], i);
@@ -56,7 +56,7 @@ static void test_ok_changes()
        needlen = strlen(needle);
 
        for (i = 0; i < N_ELEMENTS(tests); ++i) {
-               unsigned int len;
+               size_t len;
                char const *chgd;
                char const *insert;
                unsigned int offs;
index 2981b9bcaa00e43e16b3393c9702d4ace7acf38e..aa652be5ac9b39def8f21b0a7d9c61d1cab236c7 100644 (file)
@@ -18,7 +18,7 @@ unlink_old_files_real(const char *dir, const char *prefix, time_t min_time)
        struct dirent *d;
        struct stat st;
        string_t *path;
-       unsigned int prefix_len, dir_len;
+       size_t prefix_len, dir_len;
 
        dirp = opendir(dir);
        if (dirp == NULL) {
index cfbfd013bc632a55ab03c937cb026b7e73e40410..419db64cc2047ce3874a7c97a733548253ea673b 100644 (file)
@@ -34,7 +34,7 @@ struct var_expand_modifier {
 static int
 var_expand_long(const struct var_expand_table *table,
                const struct var_expand_func_table *func_table,
-               const void *key_start, unsigned int key_len, void *context,
+               const void *key_start, size_t key_len, void *context,
                const char **var_r, const char **error_r);
 
 static const char *
@@ -153,7 +153,7 @@ m_str_ldap_dn(const char *str, struct var_expand_context *ctx ATTR_UNUSED)
 static const char *
 m_str_trim(const char *str, struct var_expand_context *ctx ATTR_UNUSED)
 {
-       unsigned int len;
+       size_t len;
 
        len = strlen(str);
        while (len > 0 && i_isspace(str[len-1]))
@@ -386,7 +386,7 @@ var_expand_func(const struct var_expand_func_table *func_table,
 static int
 var_expand_long(const struct var_expand_table *table,
                const struct var_expand_func_table *func_table,
-               const void *key_start, unsigned int key_len, void *context,
+               const void *key_start, size_t key_len, void *context,
                const char **var_r, const char **error_r)
 {
         const struct var_expand_table *t;
@@ -453,7 +453,8 @@ int var_expand_with_funcs(string_t *dest, const char *str,
        const char *(*modifier[MAX_MODIFIER_COUNT])
                (const char *, struct var_expand_context *);
        const char *end;
-       unsigned int i, len, modifier_count;
+       unsigned int i, modifier_count;
+       size_t len;
        int ret, final_ret = 1;
 
        *error_r = NULL;
@@ -579,7 +580,7 @@ int var_expand_with_funcs(string_t *dest, const char *str,
                                        str_append_n(dest, var, ctx.width);
                                } else {
                                        /* %05d -like padding. no truncation. */
-                                       int len = strlen(var);
+                                       ssize_t len = strlen(var);
                                        while (len < ctx.width) {
                                                str_append_c(dest, '0');
                                                ctx.width--;
index fd1a3b509e83410d14d2f7e2861bca6039e3c8fb..754ad33ac61aa68450a0382df3bea064c20c2133 100644 (file)
@@ -498,7 +498,7 @@ static void lmtp_address_translate(struct client *client, const char **address)
 {
        const char *transpos = client->lmtp_set->lmtp_address_translate;
        const char *p, *nextstr, *addrpos = *address;
-       unsigned int len;
+       size_t len;
        string_t *username, *domain, *dest = NULL;
 
        if (*transpos == '\0')
index 753efc58ae23e2bfc39234de5611ddd19806c63f..347a3f84c5b8b007c55e0ff1ea0b6769cb5f933c 100644 (file)
@@ -51,8 +51,8 @@ static void log_error_buffer_delete_head(struct log_error_buffer *buf)
 void log_error_buffer_add(struct log_error_buffer *buf,
                          const struct log_error *error)
 {
-       unsigned int prefix_size = strlen(error->prefix)+1;
-       unsigned int text_size = strlen(error->text)+1;
+       size_t prefix_size = strlen(error->prefix)+1;
+       size_t text_size = strlen(error->text)+1;
        struct log_error_data *data;
 
        if (buf->count == LOG_ERROR_BUFFER_MAX_LINES)
index 8fad65168d96ca16f76e6f56cd6504c4cbeceed8..274ba3f83bf0cd71d08d06792aa35371954db818 100644 (file)
@@ -591,8 +591,7 @@ void client_auth_fail(struct client *client, const char *text)
 int client_auth_read_line(struct client *client)
 {
        const unsigned char *data;
-       size_t i, size;
-       unsigned int len;
+       size_t i, size, len;
 
        if (i_stream_read_more(client->input, &data, &size) == -1) {
                client_destroy(client, "Disconnected");
index b08cddc4e06ed2ade9dfead7e66cd4f2c3493bf3..71ee0e11ee1d248652d6f185a0a913027f6e02d4 100644 (file)
@@ -607,7 +607,8 @@ client_var_expand_func_passdb(const char *data, void *context,
 {
        struct client *client = context;
        const char *field_name = data;
-       unsigned int i, field_name_len;
+       unsigned int i;
+       size_t field_name_len;
 
        *value_r = NULL;
 
index 4c82345df8d4afd64d6705c6eff06877e14eb294..ea38ff618bcf04dd967f545ac1ff7c2b4a48d9e2 100644 (file)
@@ -132,7 +132,7 @@ static int login_proxy_state_notify_open(struct login_proxy_state *state)
 static bool login_proxy_state_try_notify(struct login_proxy_state *state,
                                         const char *user)
 {
-       unsigned int len;
+       size_t len;
        ssize_t ret;
 
        if (state->notify_fd == -1) {
index d19f4606f19c03effa8f9c28ba9e31760c00461f..ea987f66fd12a311984d174b3553a4cc1d4030d3 100644 (file)
@@ -284,7 +284,7 @@ fix_file_listener_paths(ARRAY_TYPE(file_listener_settings) *l,
                        const char **error_r)
 {
        struct file_listener_settings *const *sets;
-       unsigned int base_dir_len = strlen(master_set->base_dir);
+       size_t base_dir_len = strlen(master_set->base_dir);
        enum service_user_default user_default;
 
        if (!array_is_created(l))
@@ -422,8 +422,9 @@ master_settings_verify(void *_set, pool_t pool, const char **error_r)
        const char *const *strings;
        ARRAY_TYPE(const_string) all_listeners;
        struct passwd pw;
-       unsigned int i, j, count, len, client_limit, process_limit;
+       unsigned int i, j, count, client_limit, process_limit;
        unsigned int max_auth_client_processes, max_anvil_client_processes;
+       size_t len;
 #ifdef CONFIG_BINARY
        const struct service_settings *default_service;
 #else
@@ -666,7 +667,7 @@ settings_have_auth_unix_listeners_in(const struct master_settings *set,
 {
        struct service_settings *const *services;
        struct file_listener_settings *const *uls;
-       unsigned int dir_len = strlen(dir);
+       size_t dir_len = strlen(dir);
 
        array_foreach(&set->services, services) {
                struct service_settings *service = *services;
@@ -690,7 +691,7 @@ static void unlink_sockets(const char *path, const char *prefix)
        struct dirent *dp;
        struct stat st;
        string_t *str;
-       unsigned int prefix_len;
+       size_t prefix_len;
 
        dirp = opendir(path);
        if (dirp == NULL) {
index 3a1d0266684e6000f69be3e3072a30e288810ba8..d43abfae281c5c4490d43feebdf864e390c988bb 100644 (file)
@@ -172,7 +172,7 @@ drop_privileges(struct service *service)
 {
        struct restrict_access_settings rset;
        bool disallow_root;
-       unsigned int len;
+       size_t len;
 
        if (service->vsz_limit != 0)
                restrict_process_size(service->vsz_limit);
index 2714aa647e9ea434825db52bf2945ac2b5c3fa7b..c5eae289c9aa8f5c83bc6aef9b745aa66c7fdf7c 100644 (file)
@@ -157,7 +157,7 @@ acl_lookup_dict_rebuild_update(struct acl_lookup_dict *dict,
        ARRAY_TYPE(const_string) old_ids_arr;
        unsigned int newi, oldi, old_count, new_count;
        string_t *path;
-       unsigned int prefix_len;
+       size_t prefix_len;
        int ret;
 
        /* get all existing identifiers for the user. we might be able to
@@ -264,7 +264,7 @@ static void acl_lookup_dict_iterate_read(struct acl_lookup_dict_iter *iter)
 {
        struct dict_iterate_context *dict_iter;
        const char *const *idp, *prefix, *key, *value, *error;
-       unsigned int prefix_len;
+       size_t prefix_len;
 
        idp = array_idx(&iter->iter_ids, iter->iter_idx);
        iter->iter_idx++;
index 4ce5a608a759cdd13b997d2cf187663c730bc88b..4d777d2ae4ec817be7c024077c921de9aa9d9bd9 100644 (file)
@@ -233,7 +233,7 @@ acl_mailbox_list_iter_get_name(struct mailbox_list_iterate_context *ctx,
 {
        struct mail_namespace *ns = ctx->list->ns;
        const char *name;
-       unsigned int len;
+       size_t len;
 
        name = mailbox_list_get_storage_name(ns->list, vname);
        len = strlen(name);
@@ -266,7 +266,7 @@ iter_mailbox_has_visible_children(struct acl_mailbox_list_iterate_context *ctx,
        const struct mailbox_info *info;
        string_t *pattern;
        const char *prefix;
-       unsigned int i, prefix_len;
+       size_t i, prefix_len;
        bool stars = FALSE, ret = FALSE;
 
        /* do we have child mailboxes with LOOKUP right that don't match
index 699f444db807656770fdcb53c6f4370a87c7ea5e..e9d0eb073c2f65622dc86278fe8a5aa80f8773be 100644 (file)
@@ -53,12 +53,12 @@ void ldap_dict_lookup_async(struct dict *dict, const char *key,
 
 static bool
 dict_ldap_map_match(const struct dict_ldap_map *map, const char *path,
-                  ARRAY_TYPE(const_string) *values, unsigned int *pat_len_r,
-                  unsigned int *path_len_r, bool partial_ok, bool recurse)
+                  ARRAY_TYPE(const_string) *values, size_t *pat_len_r,
+                  size_t *path_len_r, bool partial_ok, bool recurse)
 {
        const char *path_start = path;
        const char *pat, *attribute, *p;
-       unsigned int len;
+       size_t len;
 
        array_clear(values);
        pat = map->pattern;
@@ -134,7 +134,8 @@ ldap_dict_find_map(struct ldap_dict *dict, const char *path,
                  ARRAY_TYPE(const_string) *values)
 {
        const struct dict_ldap_map *maps;
-       unsigned int i, count, len;
+       unsigned int i, count;
+       size_t len;
 
        t_array_init(values, dict->set->max_attribute_count);
        maps = array_get(&dict->set->maps, &count);
index 5ffbc8ad8248af051f18dcaba4022c3f4567969a..9cfd7515fae8d4e10d90f860270b2cf586c75431 100644 (file)
@@ -60,10 +60,10 @@ static bool is_valid_xml_char(unichar_t chr)
 }
 
 static void
-xml_encode_data(string_t *dest, const unsigned char *data, unsigned int len)
+xml_encode_data(string_t *dest, const unsigned char *data, size_t len)
 {
        unichar_t chr;
-       unsigned int i;
+       size_t i;
 
        for (i = 0; i < len; i++) {
                switch (data[i]) {
@@ -659,7 +659,7 @@ static bool
 solr_add_definite_query_args(string_t *str, struct mail_search_arg *arg,
                             bool and_args)
 {
-       unsigned int last_len;
+       size_t last_len;
 
        last_len = str_len(str);
        for (; arg != NULL; arg = arg->next) {
@@ -761,7 +761,8 @@ solr_search_multi(struct solr_fts_backend *backend, string_t *str,
        struct mailbox *box;
        const char *box_name;
        char *box_id;
-       unsigned int i, len;
+       unsigned int i;
+       size_t len;
 
        /* use a separate filter query for selecting the mailbox. it shouldn't
           affect the score and there could be some caching benefits too. */
index b367c88259b9192f59e27950b6301f3fadc90801..00c382366b6df658b4002d8e9cd128ee184aa208 100644 (file)
@@ -80,12 +80,12 @@ static bool is_valid_xml_char(unichar_t chr)
        return chr < 0x10ffff;
 }
 
-static unsigned int
-xml_encode_data_max(string_t *dest, const unsigned char *data, unsigned int len,
+static size_t
+xml_encode_data_max(string_t *dest, const unsigned char *data, size_t len,
                    unsigned int max_len)
 {
        unichar_t chr;
-       unsigned int i;
+       size_t i;
 
        i_assert(max_len > 0 || len == 0);
 
@@ -135,7 +135,7 @@ xml_encode_data_max(string_t *dest, const unsigned char *data, unsigned int len,
 }
 
 static void
-xml_encode_data(string_t *dest, const unsigned char *data, unsigned int len)
+xml_encode_data(string_t *dest, const unsigned char *data, size_t len)
 {
        (void)xml_encode_data_max(dest, data, len, len);
 }
@@ -564,7 +564,7 @@ fts_backend_solr_update_build_more(struct fts_backend_update_context *_ctx,
 {
        struct solr_fts_backend_update_context *ctx =
                (struct solr_fts_backend_update_context *)_ctx;
-       unsigned int len;
+       size_t len;
 
        if (_ctx->failed)
                return -1;
@@ -707,7 +707,7 @@ static bool
 solr_add_definite_query_args(string_t *str, struct mail_search_arg *arg,
                             bool and_args)
 {
-       unsigned int last_len;
+       size_t last_len;
 
        last_len = str_len(str);
        for (; arg != NULL; arg = arg->next) {
@@ -764,7 +764,7 @@ static bool
 solr_add_maybe_query_args(string_t *str, struct mail_search_arg *arg,
                          bool and_args)
 {
-       unsigned int last_len;
+       size_t last_len;
 
        last_len = str_len(str);
        for (; arg != NULL; arg = arg->next) {
@@ -821,7 +821,7 @@ fts_backend_solr_lookup(struct fts_backend *_backend, struct mailbox *box,
        struct mailbox_status status;
        string_t *str;
        const char *box_guid;
-       unsigned int prefix_len;
+       size_t prefix_len;
 
        if (fts_mailbox_get_guid(box, &box_guid) < 0)
                return -1;
@@ -862,7 +862,8 @@ solr_search_multi(struct fts_backend *_backend, string_t *str,
        HASH_TABLE(char *, struct mailbox *) mailboxes;
        struct mailbox *box;
        const char *box_guid;
-       unsigned int i, len;
+       unsigned int i;
+       size_t len;
        bool search_all_mailboxes;
 
        /* use a separate filter query for selecting the mailbox. it shouldn't
index 90f8cd0e69006f8966815126becb9d4d64fb7be5..adac99868c1b57f7f8fb51d95067351d9034d2ad 100644 (file)
@@ -43,7 +43,8 @@ int main(int argc ATTR_UNUSED, char *argv[])
        char *line, *str, buf[4096];
        buffer_t *valid;
        int ret, fd;
-       unsigned int len, last = 0, seq = 1, node_count, uidlist_count;
+       unsigned int last = 0, seq = 1, node_count, uidlist_count;
+       size_t len;
        enum squat_index_type index_type;
        bool data_header = TRUE, first = TRUE, skip_body = FALSE;
        bool mime_header = TRUE;
index 4184a4ae2e814c5cefffccdbeefb91e2e14fb468..f690307966901d3aa57bd65d6e9622338157be57 100644 (file)
@@ -459,7 +459,7 @@ int fts_index_have_compatible_settings(struct mailbox_list *list,
        struct mailbox *box;
        struct fts_index_header hdr;
        const char *vname;
-       unsigned int len;
+       size_t len;
        int ret;
 
        if ((ns->flags & NAMESPACE_FLAG_INBOX_USER) != 0)
index 5750b420d74e2bc2988cf73aaccf998e4a157a6c..1a8aedddc21437afb333fe14aebeeb456976f0b1 100644 (file)
@@ -98,7 +98,7 @@ fts_backend_dovecot_tokenize_lang(struct fts_user_language *user_lang,
                                  struct mail_search_arg *orig_arg,
                                  const char *orig_token, const char **error_r)
 {
-       unsigned int orig_token_len = strlen(orig_token);
+       size_t orig_token_len = strlen(orig_token);
        struct mail_search_arg *and_arg;
        const char *token, *error;
        int ret;
index 9adf19de5969bbdf5518b494d445ec6c1b697493..0f0070c1c1e9d665e3f08ee2c7d370162e3895cb 100644 (file)
@@ -105,7 +105,8 @@ static void
 imap_acl_write_rights_list(string_t *dest, const char *const *rights)
 {
        const struct imap_acl_letter_map *map;
-       unsigned int i, orig_len = str_len(dest);
+       unsigned int i;
+       size_t orig_len = str_len(dest);
        bool append_c = FALSE, append_d = FALSE;
 
        for (i = 0; rights[i] != NULL; i++) {
@@ -211,7 +212,7 @@ imap_acl_write_aclobj(string_t *dest, struct acl_backend *backend,
        struct acl_rights rights;
        string_t *tmp;
        const char *username;
-       unsigned int orig_len = str_len(dest);
+       size_t orig_len = str_len(dest);
        bool seen_owner = FALSE, seen_positive_owner = FALSE;
        int ret;
 
index a9dbb87d4cbba5e07fa50160e1964b89ce2a3ed5..502422937fa79876a22b5a1d44376255638be657 100644 (file)
@@ -58,7 +58,7 @@ static void stats_command_post(struct client_command_context *cmd)
        struct stats_client_command *scmd = IMAP_STATS_IMAP_CONTEXT(cmd);
        struct stats *new_stats, *diff_stats;
        const char *error;
-       unsigned int args_pos = 0, args_len = 0;
+       size_t args_pos = 0, args_len = 0;
        string_t *str;
        buffer_t *buf;
 
@@ -102,7 +102,7 @@ static void stats_command_post(struct client_command_context *cmd)
 
        if (str_len(str) > PIPE_BUF) {
                /* truncate the args so it fits */
-               unsigned int delete_count = str_len(str) - PIPE_BUF;
+               size_t delete_count = str_len(str) - PIPE_BUF;
 
                i_assert(args_pos != 0);
                if (delete_count > args_len)
index 8a729ee66dc610b10c248e9e9ddfaa7f1d70c049..0ee256cb7d7e83ea4731900d7ce825ed4b84dd14 100644 (file)
@@ -61,7 +61,7 @@ mail_crypt_load_global_private_keys(const struct fs_crypt_settings *set,
        string_t *set_key = t_str_new(64);
        str_append(set_key, set_prefix);
        str_append(set_key, "_private_key");
-       unsigned int prefix_len = str_len(set_key);
+       size_t prefix_len = str_len(set_key);
 
        unsigned int i = 1;
        const char *key_data;
index 54a1b96cf8e777846016b6ec8201b447a781e66b..2f902020834953158a774e630b1849270ecf38b4 100644 (file)
@@ -15,7 +15,7 @@ mail_crypt_load_global_private_keys(struct mail_user *user,
        string_t *set_key = t_str_new(64);
        str_append(set_key, set_prefix);
        str_append(set_key, "_private_key");
-       unsigned int prefix_len = str_len(set_key);
+       size_t prefix_len = str_len(set_key);
 
        unsigned int i = 1;
        const char *key_data;
index 17fe6e5def302410de381e1b606507cc679ceddd..387f1fb1f7023ef8fef62197db744670a528481e 100644 (file)
@@ -125,7 +125,8 @@ static void quota_count_path_add(ARRAY_TYPE(quota_count_path) *paths,
                                 const char *path, bool is_file)
 {
        struct quota_count_path *count_path;
-       unsigned int i, count, path_len;
+       unsigned int i, count;
+       size_t path_len;
 
        path_len = strlen(path);
        count_path = array_get_modifiable(paths, &count);
index 91bf16059c28f2a3ff87478efc6fbc655cb98eb1..8076fce11a889b9f9f69186346891af74c96ec95 100644 (file)
@@ -84,7 +84,7 @@ static bool
 replicator_send_buf(struct replicator_connection *conn, buffer_t *buf)
 {
        const unsigned char *data = buf->data;
-       unsigned int len = IO_BLOCK_SIZE;
+       size_t len = IO_BLOCK_SIZE;
 
        /* try to send about IO_BLOCK_SIZE amount of data,
           but only full lines */
@@ -265,7 +265,7 @@ static void
 replicator_send(struct replicator_connection *conn,
                enum replication_priority priority, const char *data)
 {
-       unsigned int data_len = strlen(data);
+       size_t data_len = strlen(data);
 
        if (conn->fd != -1 &&
            o_stream_get_buffer_used_size(conn->output) == 0) {