diff src/lib-storage/index/index-search.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 21ffcce83c70
children fd8888f6f037
line wrap: on
line diff
--- a/src/lib-storage/index/index-search.c	Sat Jan 04 15:22:29 2003 +0200
+++ b/src/lib-storage/index/index-search.c	Sat Jan 04 19:26:29 2003 +0200
@@ -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;