Mercurial > dovecot > original-hg > dovecot-1.2
diff src/lib-index/mbox/mbox-rewrite.c @ 898:0d5be52d7131 HEAD
Use unsigned char* when accessing non-NUL terminating strings. Compiler
warnings would then notify about accidentally passing them to functions which
require them NUL-terminated. Changed a few functions to use void* to avoid
unneeded casting.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sat, 04 Jan 2003 19:26:29 +0200 |
parents | 41ec8cadd238 |
children | fd8888f6f037 |
line wrap: on
line diff
--- a/src/lib-index/mbox/mbox-rewrite.c Sat Jan 04 15:22:29 2003 +0200 +++ b/src/lib-index/mbox/mbox-rewrite.c Sat Jan 04 19:26:29 2003 +0200 @@ -196,7 +196,7 @@ return TRUE; } -static const char *strip_chars(const char *value, size_t value_len, +static const char *strip_chars(const unsigned char *value, size_t value_len, const char *list) { /* @UNSAFE: leave only unknown flags, very likely none */ @@ -216,7 +216,7 @@ return ret; } -static void update_stripped_custom_flags(const char *value, size_t len, +static void update_stripped_custom_flags(const unsigned char *value, size_t len, int index, void *context) { String *str = context; @@ -229,7 +229,7 @@ } } -static const char *strip_custom_flags(const char *value, size_t len, +static const char *strip_custom_flags(const unsigned char *value, size_t len, MboxRewriteContext *ctx) { String *str; @@ -241,8 +241,8 @@ } static void header_func(MessagePart *part __attr_unused__, - const char *name, size_t name_len, - const char *value, size_t value_len, + const unsigned char *name, size_t name_len, + const unsigned char *value, size_t value_len, void *context) { MboxRewriteContext *ctx = context; @@ -252,25 +252,27 @@ if (ctx->failed) return; - if (name_len == 6 && strncasecmp(name, "Status", 6) == 0) { + if (name_len == 6 && memcasecmp(name, "Status", 6) == 0) { ctx->status_found = TRUE; str = strip_chars(value, value_len, "RO"); (void)mbox_write_status(ctx, str); - } else if (name_len == 8 && strncasecmp(name, "X-Status", 8) == 0) { + } else if (name_len == 8 && memcasecmp(name, "X-Status", 8) == 0) { ctx->xstatus_found = TRUE; str = strip_chars(value, value_len, "ADFT"); (void)mbox_write_xstatus(ctx, str); - } else if (name_len == 10 && strncasecmp(name, "X-Keywords", 10) == 0) { + } else if (name_len == 10 && memcasecmp(name, "X-Keywords", 10) == 0) { ctx->ximapbase_found = TRUE; str = strip_custom_flags(value, value_len, ctx); (void)mbox_write_xkeywords(ctx, str); - } else if (name_len == 10 && strncasecmp(name, "X-IMAPbase", 10) == 0) { + } else if (name_len == 10 && memcasecmp(name, "X-IMAPbase", 10) == 0) { if (ctx->seq == 1) { /* temporarily copy the value to make sure we don't overflow it */ + const char *str; + t_push(); - value = t_strndup(value, value_len); - ctx->uid_validity = strtoul(value, &end, 10); + str = t_strndup(value, value_len); + ctx->uid_validity = strtoul(str, &end, 10); while (*end == ' ') end++; ctx->uid_last = strtoul(end, &end, 10); t_pop(); @@ -279,7 +281,7 @@ (void)mbox_write_ximapbase(ctx); } } else if (name_len == 14 && - strncasecmp(name, "Content-Length", 14) == 0) { + memcasecmp(name, "Content-Length", 14) == 0) { ctx->content_length_found = TRUE; (void)mbox_write_content_length(ctx); } else if (name_len > 0) {