[dovecot-cvs] dovecot/src/lib-storage/index index-fetch-section.c,1.27,1.28 index-search.c,1.56,1.57
cras at procontrol.fi
cras at procontrol.fi
Sat Jan 4 19:26:32 EET 2003
Update of /home/cvs/dovecot/src/lib-storage/index
In directory danu:/tmp/cvs-serv386/lib-storage/index
Modified Files:
index-fetch-section.c index-search.c
Log Message:
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.
Index: index-fetch-section.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-storage/index/index-fetch-section.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- index-fetch-section.c 3 Jan 2003 15:57:12 -0000 1.27
+++ index-fetch-section.c 4 Jan 2003 17:26:30 -0000 1.28
@@ -18,7 +18,7 @@
uoff_t skip, max_size;
const char *const *fields;
- int (*match_func) (const char *const *, const char *, size_t);
+ int (*match_func) (const char *const *, const unsigned char *, size_t);
} FetchHeaderFieldContext;
/* For FETCH[HEADER.FIELDS*] we need to modify the header data before sending
@@ -97,9 +97,10 @@
}
static int header_match(const char *const *fields,
- const char *name, size_t size)
+ const unsigned char *name, size_t size)
{
- const char *field, *name_start, *name_end;
+ const unsigned char *name_start, *name_end;
+ const char *field;
if (size == 0)
return FALSE;
@@ -131,25 +132,25 @@
}
static int header_match_not(const char *const *fields,
- const char *name, size_t size)
+ const unsigned char *name, size_t size)
{
return !header_match(fields, name, size);
}
static int header_match_mime(const char *const *fields __attr_unused__,
- const char *name, size_t size)
+ const unsigned char *name, size_t size)
{
- if (size > 8 && strncasecmp(name, "Content-", 8) == 0)
+ if (size > 8 && memcasecmp(name, "Content-", 8) == 0)
return TRUE;
- if (size == 12 && strncasecmp(name, "Mime-Version", 13) == 0)
+ if (size == 12 && memcasecmp(name, "Mime-Version", 12) == 0)
return TRUE;
return FALSE;
}
static int fetch_header_append(FetchHeaderFieldContext *ctx,
- const char *str, size_t size)
+ const unsigned char *str, size_t size)
{
if (ctx->skip > 0) {
if (ctx->skip >= size) {
@@ -179,13 +180,13 @@
}
static void fetch_header_field(MessagePart *part __attr_unused__,
- const char *name, size_t name_len,
- const char *value __attr_unused__,
+ const unsigned char *name, size_t name_len,
+ const unsigned char *value __attr_unused__,
size_t value_len __attr_unused__,
void *context)
{
FetchHeaderFieldContext *ctx = context;
- const char *field_start, *field_end, *cr, *p;
+ const unsigned char *field_start, *field_end, *cr, *p;
/* see if we want this field. */
if (!ctx->match_func(ctx->fields, name, name_len))
Index: index-search.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-storage/index/index-search.c,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -d -r1.56 -r1.57
--- index-search.c 3 Jan 2003 15:57:12 -0000 1.56
+++ index-search.c 4 Jan 2003 17:26:30 -0000 1.57
@@ -43,7 +43,7 @@
MailSearchArg *args;
int custom_header;
- const char *name, *value;
+ const unsigned char *name, *value;
size_t name_len, value_len;
} SearchHeaderContext;
@@ -341,7 +341,6 @@
ImapEnvelopeField env_field;
HeaderSearchContext *hdr_search_ctx;
const char *envelope, *field;
- size_t size;
int ret;
switch (arg->type) {
@@ -417,9 +416,10 @@
break;
}
- size = strlen(field);
- ret = message_header_search(field, size,
- hdr_search_ctx) ? 1 : 0;
+ ret = message_header_search(
+ (const unsigned char *) field,
+ strlen(field),
+ hdr_search_ctx) ? 1 : 0;
}
}
t_pop();
@@ -457,35 +457,31 @@
case SEARCH_SENTSINCE:
/* date is handled differently than others */
if (ctx->name_len == 4 &&
- strncasecmp(ctx->name, "Date", 4) == 0) {
+ memcasecmp(ctx->name, "Date", 4) == 0) {
search_sent(arg->type, arg->value.str,
t_strndup(ctx->value, ctx->value_len));
}
return;
case SEARCH_FROM:
- if (ctx->name_len != 4 ||
- strncasecmp(ctx->name, "From", 4) != 0)
+ if (ctx->name_len != 4 || memcasecmp(ctx->name, "From", 4) != 0)
return;
break;
case SEARCH_TO:
- if (ctx->name_len != 2 ||
- strncasecmp(ctx->name, "To", 2) != 0)
+ if (ctx->name_len != 2 || memcasecmp(ctx->name, "To", 2) != 0)
return;
break;
case SEARCH_CC:
- if (ctx->name_len != 2 ||
- strncasecmp(ctx->name, "Cc", 2) != 0)
+ if (ctx->name_len != 2 || memcasecmp(ctx->name, "Cc", 2) != 0)
return;
break;
case SEARCH_BCC:
- if (ctx->name_len != 3 ||
- strncasecmp(ctx->name, "Bcc", 3) != 0)
+ if (ctx->name_len != 3 || memcasecmp(ctx->name, "Bcc", 3) != 0)
return;
break;
case SEARCH_SUBJECT:
if (ctx->name_len != 7 ||
- strncasecmp(ctx->name, "Subject", 7) != 0)
+ memcasecmp(ctx->name, "Subject", 7) != 0)
return;
break;
case SEARCH_HEADER:
@@ -493,7 +489,7 @@
len = strlen(arg->hdr_field_name);
if (ctx->name_len != len ||
- strncasecmp(ctx->name, arg->hdr_field_name, len) != 0)
+ memcasecmp(ctx->name, arg->hdr_field_name, len) != 0)
return;
case SEARCH_TEXT:
/* TEXT goes through all headers */
@@ -525,19 +521,19 @@
}
static void search_header(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)
{
SearchHeaderContext *ctx = context;
if ((name_len > 0 && ctx->custom_header) ||
- (name_len == 4 && strncasecmp(name, "Date", 4) == 0) ||
- (name_len == 4 && strncasecmp(name, "From", 4) == 0) ||
- (name_len == 2 && strncasecmp(name, "To", 2) == 0) ||
- (name_len == 2 && strncasecmp(name, "Cc", 2) == 0) ||
- (name_len == 3 && strncasecmp(name, "Bcc", 3) == 0) ||
- (name_len == 7 && strncasecmp(name, "Subject", 7) == 0)) {
+ (name_len == 4 && memcasecmp(name, "Date", 4) == 0) ||
+ (name_len == 4 && memcasecmp(name, "From", 4) == 0) ||
+ (name_len == 2 && memcasecmp(name, "To", 2) == 0) ||
+ (name_len == 2 && memcasecmp(name, "Cc", 2) == 0) ||
+ (name_len == 3 && memcasecmp(name, "Bcc", 3) == 0) ||
+ (name_len == 7 && memcasecmp(name, "Subject", 7) == 0)) {
ctx->name = name;
ctx->value = value;
ctx->name_len = name_len;
More information about the dovecot-cvs
mailing list