Fix signed/unsigned and UTF errors Fixes: #901
authorNigel Metheringham <nigel@exim.org>
Thu, 5 Nov 2009 19:40:51 +0000 (19:40 +0000)
committerNigel Metheringham <nigel@exim.org>
Thu, 5 Nov 2009 19:40:51 +0000 (19:40 +0000)
doc/doc-txt/ChangeLog
src/src/malware.c
src/src/parse.c
src/src/sieve.c
src/src/tls-openssl.c

index 9803382dc0b250b0f13282f57c2c2d4dfbca4192..defe1e08fcfeb46086cdff16d7a6dddc12e923df 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.586 2009/11/05 19:31:15 nm4 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.587 2009/11/05 19:40:51 nm4 Exp $
 
 Change log file for Exim from version 4.21
 -------------------------------------------
 
 Change log file for Exim from version 4.21
 -------------------------------------------
@@ -145,6 +145,9 @@ NM/32 Bugzilla 889: Change all instances of "expr" in shell scripts to "expr --"
 NM/33 Bugzilla 898: Transport filter timeout fix
       Patch by Todd Rinaldo
 
 NM/33 Bugzilla 898: Transport filter timeout fix
       Patch by Todd Rinaldo
 
+NM/34 Bugzilla 901: Fix sign/unsigned and UTF mistmatches
+      Patch by Serge Demonchaux
+
 
 Exim version 4.69
 -----------------
 
 Exim version 4.69
 -----------------
index 99f82257f9751ac3f39c604cb9b0de85da33d116..9b1bd334d8f82b612aff0cd88f420478f087135d 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/malware.c,v 1.16 2008/03/27 13:16:52 tom Exp $ */
+/* $Cambridge: exim/src/src/malware.c,v 1.17 2009/11/05 19:40:51 nm4 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -231,7 +231,7 @@ int malware(uschar **listptr) {
         if ( Ustrstr(buf, US"<detected type=\"") != NULL ) {
           detected = 1;
         } else if ( detected && (strhelper = Ustrstr(buf, US"<name>")) ) {
         if ( Ustrstr(buf, US"<detected type=\"") != NULL ) {
           detected = 1;
         } else if ( detected && (strhelper = Ustrstr(buf, US"<name>")) ) {
-          if (strhelper2 = Ustrstr(buf, US"</name>")) {
+          if (strhelper2 = (Ustrstr(buf, US"</name>"))) {
             *strhelper2 = '\0';
             Ustrcpy(malware_name_buffer, strhelper + 6);
           }
             *strhelper2 = '\0';
             Ustrcpy(malware_name_buffer, strhelper + 6);
           }
index 1558977a461e3142baee8baebc5504df5aff69a3..d608d56de0b3463d37f083438e319eaf65ad36a4 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/parse.c,v 1.13 2008/06/06 14:40:21 michael Exp $ */
+/* $Cambridge: exim/src/src/parse.c,v 1.14 2009/11/05 19:40:51 nm4 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -1775,8 +1775,7 @@ day-name        =       "Mon" / "Tue" / "Wed" / "Thu" /
 obs-day-of-week =       [CFWS] day-name [CFWS]
 */
 
 obs-day-of-week =       [CFWS] day-name [CFWS]
 */
 
-uschar *o;
-static const uschar *day_name[7]={ "mon", "tue", "wed", "thu", "fri", "sat", "sun" };
+static const uschar *day_name[7]={ US"mon", US"tue", US"wed", US"thu", US"fri", US"sat", US"sun" };
 int i;
 uschar day[4];
 
 int i;
 uschar day[4];
 
@@ -1787,7 +1786,7 @@ for (i=0; i<3; ++i)
   ++str;
   }
 day[3]='\0';
   ++str;
   }
 day[3]='\0';
-for (i=0; i<7; ++i) if (strcmp(day,day_name[i])==0) break;
+for (i=0; i<7; ++i) if (Ustrcmp(day,day_name[i])==0) break;
 if (i==7) return NULL;
 str=skip_comment(str);
 return str;
 if (i==7) return NULL;
 str=skip_comment(str);
 return str;
@@ -1834,7 +1833,7 @@ obs-day         =       [CFWS] 1*2DIGIT [CFWS]
 */
 
 uschar *c,*n;
 */
 
 uschar *c,*n;
-static const uschar *month_name[]={ "jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec" };
+static const uschar *month_name[]={ US"jan", US"feb", US"mar", US"apr", US"may", US"jun", US"jul", US"aug", US"sep", US"oct", US"nov", US"dec" };
 int i;
 uschar month[4];
 
 int i;
 uschar month[4];
 
index bbbabdfd025878ee5440dbd6c45248db5501621c..db19d713be6e2a639d3e7c6bd04e7470165a4a81 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/sieve.c,v 1.37 2009/02/04 11:31:13 michael Exp $ */
+/* $Cambridge: exim/src/src/sieve.c,v 1.38 2009/11/05 19:40:51 nm4 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -2971,7 +2971,7 @@ while (*filter->pc)
     subject.character=(uschar*)0;
     body.length=-1;
     body.character=(uschar*)0;
     subject.character=(uschar*)0;
     body.length=-1;
     body.character=(uschar*)0;
-    envelope_from=(sender_address && sender_address[0]) ? expand_string("$local_part_prefix$local_part$local_part_suffix@$domain") : US "";
+    envelope_from=(sender_address && sender_address[0]) ? expand_string(US"$local_part_prefix$local_part$local_part_suffix@$domain") : US "";
     for (;;)
       {
       if (parse_white(filter)==-1) return -1;
     for (;;)
       {
       if (parse_white(filter)==-1) return -1;
@@ -3038,11 +3038,11 @@ while (*filter->pc)
         for (already=filter->notified; already; already=already->next)
           {
           if (already->method.length==method.length
         for (already=filter->notified; already; already=already->next)
           {
           if (already->method.length==method.length
-              && (method.length==-1 || strcmp(already->method.character,method.character)==0)
+              && (method.length==-1 || Ustrcmp(already->method.character,method.character)==0)
               && already->importance.length==importance.length
               && already->importance.length==importance.length
-              && (importance.length==-1 || strcmp(already->importance.character,importance.character)==0)
+              && (importance.length==-1 || Ustrcmp(already->importance.character,importance.character)==0)
               && already->message.length==message.length
               && already->message.length==message.length
-              && (message.length==-1 || strcmp(already->message.character,message.character)==0))
+              && (message.length==-1 || Ustrcmp(already->message.character,message.character)==0))
             break;
           }
         if (already==(struct Notification*)0)
             break;
           }
         if (already==(struct Notification*)0)
@@ -3068,7 +3068,7 @@ while (*filter->pc)
               int buffer_capacity;
 
               f = fdopen(fd, "wb");
               int buffer_capacity;
 
               f = fdopen(fd, "wb");
-              fprintf(f,"From: %s\n",from.length==-1 ? expand_string("$local_part_prefix$local_part$local_part_suffix@$domain") : from.character);
+              fprintf(f,"From: %s\n",from.length==-1 ? expand_string(US"$local_part_prefix$local_part$local_part_suffix@$domain") : from.character);
               for (p=recipient; p; p=p->next) fprintf(f,"To: %s\n",p->text);
               fprintf(f,"Auto-Submitted: auto-notified; %s\n",filter->enotify_mailto_owner);
               if (header.length>0) fprintf(f,"%s",header.character);
               for (p=recipient; p; p=p->next) fprintf(f,"To: %s\n",p->text);
               fprintf(f,"Auto-Submitted: auto-notified; %s\n",filter->enotify_mailto_owner);
               if (header.length>0) fprintf(f,"%s",header.character);
index 80ac0ffe78d07d78cc2ea1b63242272a33670096..d5ccd2caa5223005216c9464ccfcd397d4cd334a 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/tls-openssl.c,v 1.20 2009/10/19 11:25:31 nm4 Exp $ */
+/* $Cambridge: exim/src/src/tls-openssl.c,v 1.21 2009/11/05 19:40:51 nm4 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -73,13 +73,13 @@ tls_error(uschar *prefix, host_item *host, uschar *msg)
 if (msg == NULL)
   {
   ERR_error_string(ERR_get_error(), ssl_errstring);
 if (msg == NULL)
   {
   ERR_error_string(ERR_get_error(), ssl_errstring);
-  msg = ssl_errstring;
+  msg = (uschar *)ssl_errstring;
   }
 
 if (host == NULL)
   {
   uschar *conn_info = smtp_get_connection_info();
   }
 
 if (host == NULL)
   {
   uschar *conn_info = smtp_get_connection_info();
-  if (strncmp(conn_info, "SMTP ", 5) == 0)
+  if (Ustrncmp(conn_info, US"SMTP ", 5) == 0)
     conn_info += 5;
   log_write(0, LOG_MAIN, "TLS error on %s (%s): %s",
     conn_info, prefix, msg);
     conn_info += 5;
   log_write(0, LOG_MAIN, "TLS error on %s (%s): %s",
     conn_info, prefix, msg);
@@ -253,7 +253,7 @@ if (dhexpanded == NULL) return TRUE;
 if ((bio = BIO_new_file(CS dhexpanded, "r")) == NULL)
   {
   tls_error(string_sprintf("could not read dhparams file %s", dhexpanded),
 if ((bio = BIO_new_file(CS dhexpanded, "r")) == NULL)
   {
   tls_error(string_sprintf("could not read dhparams file %s", dhexpanded),
-    host, strerror(errno));
+    host, (uschar *)strerror(errno));
   yield = FALSE;
   }
 else
   yield = FALSE;
   }
 else
@@ -338,7 +338,7 @@ if (!RAND_status())
 
   if (!RAND_status())
     return tls_error(US"RAND_status", host,
 
   if (!RAND_status())
     return tls_error(US"RAND_status", host,
-      "unable to seed random number generator");
+      US"unable to seed random number generator");
   }
 
 /* Set up the information callback, which outputs if debugging is at a suitable
   }
 
 /* Set up the information callback, which outputs if debugging is at a suitable
@@ -621,7 +621,7 @@ uschar *expciphers;
 
 if (tls_active >= 0)
   {
 
 if (tls_active >= 0)
   {
-  tls_error("STARTTLS received after TLS started", NULL, "");
+  tls_error(US"STARTTLS received after TLS started", NULL, US"");
   smtp_printf("554 Already in TLS\r\n");
   return FAIL;
   }
   smtp_printf("554 Already in TLS\r\n");
   return FAIL;
   }