]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
Avoid casting away const qualifiers wherever possible.
authorTimo Sirainen <tss@iki.fi>
Fri, 26 Mar 2010 23:54:31 +0000 (01:54 +0200)
committerTimo Sirainen <tss@iki.fi>
Fri, 26 Mar 2010 23:54:31 +0000 (01:54 +0200)
--HG--
branch : HEAD

src/lib-index/mail-index-modseq.c
src/lib-index/mail-index-sync.c
src/lib-otp/otp-parse.c
src/lib-settings/settings-parser.c
src/lib/execv-const.c
src/lib/fdpass.c

index e9e9f7df5224ab3018909a4539bd6b16686b8ebe..608299fac8d8d7b51f83319394936b7aa4115587 100644 (file)
@@ -285,7 +285,7 @@ mail_index_modseq_update(struct mail_index_modseq_sync *ctx,
                         uint32_t seq1, uint32_t seq2)
 {
        const struct mail_index_ext *ext;
-       const struct mail_index_record *rec;
+       struct mail_index_record *rec;
        uint32_t ext_map_idx;
        uint64_t *modseqp;
 
index 710f946fba1a8113f5f16466d939bb155397ce24..aa857c2df5ab2958b13615c5501b032e0b8c162d 100644 (file)
@@ -251,13 +251,14 @@ mail_index_sync_read_and_sort(struct mail_index_sync_ctx *ctx)
        for (i = 0; i < keyword_count; i++) {
                if (array_is_created(&keyword_updates[i].add_seq)) {
                        synclist = array_append_space(&ctx->sync_list);
-                       synclist->array = (void *)&keyword_updates[i].add_seq;
+                       synclist->array =
+                               (const void *)&keyword_updates[i].add_seq;
                        synclist->keyword_idx = i;
                }
                if (array_is_created(&keyword_updates[i].remove_seq)) {
                        synclist = array_append_space(&ctx->sync_list);
                        synclist->array =
-                               (void *)&keyword_updates[i].remove_seq;
+                               (const void *)&keyword_updates[i].remove_seq;
                        synclist->keyword_idx = i;
                        synclist->keyword_remove = TRUE;
                }
index 1074b2eaac9a1dcd25a31054a8662b810b434f04..b7bcd22fe0b76ed0380e30e21a7bf6270c347557 100644 (file)
@@ -150,6 +150,7 @@ int otp_read_new_params(const char *data, const char **endptr,
                        struct otp_state *state)
 {
        const char *p, *s;
+       char *end;
        unsigned int i = 0;
        int algo;
 
@@ -165,7 +166,7 @@ int otp_read_new_params(const char *data, const char **endptr,
        state->algo = algo;
 
        s = p;
-       state->seq = strtol(s, (char **) &p, 10);
+       state->seq = strtol(s, &end, 10); p = end;
        if ((p == s) || !IS_LWS(*p))
                return -3;
        p++;
index 3ffd0c51a00963f9cbc5850328d4bd27d4bb7959..7b24ca3c7f5177b58f8c239afd32bb39b46f777b 100644 (file)
@@ -537,7 +537,8 @@ settings_parse(struct setting_parser_context *ctx, struct setting_link *link,
               const struct setting_define *def,
               const char *key, const char *value)
 {
-        void *ptr, *ptr2, *change_ptr;
+       void *ptr, *change_ptr;
+       const void *ptr2;
        const char *error;
 
        while (def->type == SET_ALIAS) {
@@ -589,9 +590,9 @@ settings_parse(struct setting_parser_context *ctx, struct setting_link *link,
        case SET_ENUM:
                /* get the available values from default string */
                i_assert(link->info->defaults != NULL);
-               ptr2 = STRUCT_MEMBER_P(link->info->defaults, def->offset);
+               ptr2 = CONST_STRUCT_MEMBER_P(link->info->defaults, def->offset);
                if (get_enum(ctx, value, (char **)ptr,
-                            *(const char **)ptr2) < 0)
+                            *(const char *const *)ptr2) < 0)
                        return -1;
                break;
        case SET_DEFLIST:
@@ -1346,7 +1347,7 @@ settings_changes_dup(const struct setting_parser_info *info,
                case SET_STR:
                case SET_ENUM:
                case SET_STRLIST:
-                       *((char *)dest) = *((char *)src);
+                       *((char *)dest) = *((const char *)src);
                        break;
                case SET_DEFLIST:
                case SET_DEFLIST_UNIQUE: {
index c89dcb641504151c6da8fcf5e01029df1f25acb7..b8618e095f75360e6b6da25d4663fdb8bed28105 100644 (file)
@@ -5,16 +5,29 @@
 
 #include <unistd.h>
 
+static char **argv_drop_const(const char *const argv[])
+{
+       char **ret;
+       unsigned int i, count;
+
+       for (count = 0; argv[count] != NULL; count++) ;
+
+       ret = t_new(char *, count + 1);
+       for (i = 0; i < count; i++)
+               ret[i] = t_strdup_noconst(argv[i]);
+       return ret;
+}
+
 void execv_const(const char *path, const char *const argv[])
 {
-       (void)execv(path, (void *)argv);
+       (void)execv(path, argv_drop_const(argv));
        i_fatal_status(errno == ENOMEM ? FATAL_OUTOFMEM : FATAL_EXEC,
                       "execv(%s) failed: %m", path);
 }
 
 void execvp_const(const char *file, const char *const argv[])
 {
-       (void)execvp(file, (void *)argv);
+       (void)execvp(file, argv_drop_const(argv));
        i_fatal_status(errno == ENOMEM ? FATAL_OUTOFMEM : FATAL_EXEC,
                       "execvp(%s) failed: %m", file);
 }
index 322b128b6994340b99bf2c1fc051f29a0eb681d6..c376fca55dfc61a1f344f5fcd8e107edc38db70a 100644 (file)
@@ -97,7 +97,7 @@
 ssize_t fd_send(int handle, int send_fd, const void *data, size_t size)
 {
         struct msghdr msg;
-        struct iovec iov;
+        struct const_iovec iov;
         struct cmsghdr *cmsg;
        char buf[CMSG_SPACE(sizeof(int))];
 
@@ -106,10 +106,10 @@ ssize_t fd_send(int handle, int send_fd, const void *data, size_t size)
 
        memset(&msg, 0, sizeof(struct msghdr));
 
-        iov.iov_base = (void *) data;
+        iov.iov_base = data;
         iov.iov_len = size;
 
-        msg.msg_iov = &iov;
+        msg.msg_iov = (void *)&iov;
        msg.msg_iovlen = 1;
 
        if (send_fd != -1) {