Add compile-time guard against BDB library version 6
[exim.git] / src / src / header.c
index 1b6bf56d1d2eba734c1f217b456a8205090f5bc3..decd0cce69a107e43b141314a62381954295e566 100644 (file)
@@ -1,10 +1,8 @@
-/* $Cambridge: exim/src/src/header.c,v 1.8 2009/11/16 19:50:37 nm4 Exp $ */
-
 /*************************************************
 *     Exim - an Internet mail transport agent    *
 *************************************************/
 
-/* Copyright (c) University of Cambridge 1995 - 2009 */
+/* Copyright (c) University of Cambridge 1995 - 2016 */
 /* See the file NOTICE for conditions of use and distribution. */
 
 
@@ -30,7 +28,7 @@ Returns:    TRUE or FALSE
 */
 
 BOOL
-header_testname(header_line *h, uschar *name, int len, BOOL notdel)
+header_testname(header_line *h, const uschar *name, int len, BOOL notdel)
 {
 uschar *tt;
 if (h->type == '*' && notdel) return FALSE;
@@ -46,7 +44,8 @@ return *tt == ':';
    header_testname() above. */
 
 BOOL
-header_testname_incomplete(header_line *h, uschar *name, int len, BOOL notdel)
+header_testname_incomplete(header_line *h, const uschar *name,
+    int len, BOOL notdel)
 {
 if (h->type == '*' && notdel) return FALSE;
 if (h->text == NULL || strncmpic(h->text, name, len) != 0) return FALSE;
@@ -92,7 +91,7 @@ Returns:    nothing
 
 static void
 header_add_backend(BOOL after, uschar *name, BOOL topnot, int type,
-  char *format, va_list ap)
+  const char *format, va_list ap)
 {
 header_line *h, *new;
 header_line **hptr;
@@ -120,7 +119,7 @@ if (name == NULL)
     hptr = &header_list;
 
     /* header_list->text can be NULL if we get here between when the new
-    received header is allocated and when it is acutally filled in. We want
+    received header is allocated and when it is actually filled in. We want
     that header to be first, so skip it for now. */
 
     if (header_list->text == NULL)
@@ -133,7 +132,7 @@ else
   {
   int len = Ustrlen(name);
 
-  /* Find the first non-deleted header witht the correct name. */
+  /* Find the first non-deleted header with the correct name. */
 
   for (hptr = &header_list; (h = *hptr) != NULL; hptr = &(h->next))
     {
@@ -213,7 +212,7 @@ Returns:    nothing
 
 void
 header_add_at_position(BOOL after, uschar *name, BOOL topnot, int type,
-  char *format, ...)
+  const char *format, ...)
 {
 va_list ap;
 va_start(ap, format);
@@ -238,7 +237,7 @@ Returns:    nothing
 */
 
 void
-header_add(int type, char *format, ...)
+header_add(int type, const char *format, ...)
 {
 va_list ap;
 va_start(ap, format);
@@ -264,7 +263,7 @@ Returns:        nothing
 */
 
 void
-header_remove(int occ, uschar *name)
+header_remove(int occ, const uschar *name)
 {
 header_line *h;
 int hcount = 0;
@@ -451,10 +450,11 @@ for (s = strings; s != NULL; s = s->next)
 
 va_start(ap, count);
 for (i = 0; i < count; i++)
-  {
   if (one_pattern_match(name, slen, has_addresses, va_arg(ap, uschar *)))
+    {
+    va_end(ap);
     return cond;
-  }
+    }
 va_end(ap);
 
 return !cond;