Some changes to Linux configs to help with other libc OS.
[exim.git] / src / src / sieve.c
index 8e11af557f1d923d2769df1e58c231093c33097b..22bc64fd7a50ec9976fb86279b2c921357726b6e 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/sieve.c,v 1.4 2005/02/15 09:31:13 ph10 Exp $ */
+/* $Cambridge: exim/src/src/sieve.c,v 1.6 2005/02/17 09:49:08 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -32,8 +32,7 @@
 /* The code is currently broken.                                    */
 #undef SUBADDRESS
 
-/* Define this for development of the vacation Sieve extension.     */
-/* The code is not yet finished.                                    */
+/* Define this for the vacation Sieve extension.                    */
 #define VACATION
 
 /* Must be >= 1                                                     */
@@ -2487,6 +2486,7 @@ while (*filter->pc)
         start=capacity;
         once=string_cat(filter->vacation_directory,&capacity,&start,US"/",1);
         once=string_cat(once,&capacity,&start,hexdigest,33);
+        once[start] = '\0';
 
         /* process subject */
 
@@ -2542,10 +2542,13 @@ while (*filter->pc)
           capacity = 0;
           start = 0;
           addr->reply->headers = string_cat(NULL,&capacity,&start,reason.character,mime_body-reason.character);
+          addr->reply->headers[start] = '\0';
           capacity = 0;
           start = 0;
-          if (mime_body<reason_end) mime_body+=sizeof(nlnl)-1;
+          if (mime_body+(sizeof(nlnl)-1)<reason_end) mime_body+=sizeof(nlnl)-1;
+          else mime_body=reason_end-1;
           addr->reply->text = string_cat(NULL,&capacity,&start,mime_body,reason_end-mime_body);
+          addr->reply->text[start] = '\0';
           }
         else
           {