X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Fheader.c;h=8136c69fe507b7c2e1a98c4cd973175e6a368a81;hb=44383db480a782c56a2195d46bea6df89e4cef3e;hp=1186dd9381ae99c0ccb1d3ea67aeb16b60c4ad21;hpb=184e88237dea64ce48076cdd0184612d057cbafd;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/header.c b/src/src/header.c index 1186dd938..8136c69fe 100644 --- a/src/src/header.c +++ b/src/src/header.c @@ -1,10 +1,8 @@ -/* $Cambridge: exim/src/src/header.c,v 1.6 2007/01/08 10:50:18 ph10 Exp $ */ - /************************************************* * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2007 */ +/* Copyright (c) University of Cambridge 1995 - 2009 */ /* 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; @@ -118,7 +117,14 @@ if (name == NULL) else { hptr = &header_list; - h = 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 + that header to be first, so skip it for now. */ + + if (header_list->text == NULL) + hptr = &header_list->next; + h = *hptr; } } @@ -206,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); @@ -231,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); @@ -257,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;