Call initgroups() when dropping privilege, in order that Exim runs with
[exim.git] / src / src / sieve.c
index 8b89a0ea9124660138c901c8f8838f42ca50617f..1dcb7795f6c33e2489d27d76f7f76a2ae0e478f8 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/sieve.c,v 1.18 2006/03/01 10:40:03 ph10 Exp $ */
+/* $Cambridge: exim/src/src/sieve.c,v 1.21 2006/04/25 10:44:57 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -400,7 +400,7 @@ if (*uri=='?')
         return -1;
         }
       }
-    if (hname.length==2 && strcmp(hname.character,"to")==0)
+    if (hname.length==2 && strcmp(CS hname.character,"to")==0)
       {
       new=store_get(sizeof(string_item));
       new->text=store_get(hvalue.length+1);
@@ -409,7 +409,7 @@ if (*uri=='?')
       new->next=*recipient;
       *recipient=new;
       }
-    else if (hname.length==4 && strcmp(hname.character,"body")==0)
+    else if (hname.length==4 && strcmp(CS hname.character,"body")==0)
       *body=hvalue;
     if (*uri=='&') ++uri;
     else break;
@@ -2583,6 +2583,7 @@ while (*filter->pc)
           {
           debug_printf("Notification to `%s'.\n",method.character);
           }
+#ifndef COMPILE_SYNTAX_CHECKER
         if (exec)
           {
           string_item *p;
@@ -2606,6 +2607,7 @@ while (*filter->pc)
             (void)child_close(pid, 0);
             }
           }
+#endif
         }
       else
         {
@@ -2854,7 +2856,7 @@ while (*filter->pc)
           /* Allocation is larger than neccessary, but enough even for split MIME words */
           buffer_capacity=32+4*subject.length;
           buffer=store_get(buffer_capacity);
-          addr->reply->subject=parse_quote_2047(subject.character, subject.length, US"utf-8", buffer, buffer_capacity);
+          addr->reply->subject=parse_quote_2047(subject.character, subject.length, US"utf-8", buffer, buffer_capacity, TRUE);
           addr->reply->oncelog=once;
           addr->reply->once_repeat=days*86400;