Avoid needless alloc for null header
[users/heiko/exim.git] / src / src / header.c
index cf7a81296f74c2c05a3266cfea5f131567f5393c..720446bff61ca7bc97eaa76f6a63388e4e213ab0 100644 (file)
@@ -97,12 +97,15 @@ header_add_backend(BOOL after, uschar *name, BOOL topnot, int type,
 header_line *h, *new = NULL;
 header_line **hptr;
 
 header_line *h, *new = NULL;
 header_line **hptr;
 
-uschar *p, *q;
-uschar * buf = store_get(HEADER_ADD_BUFFER_SIZE, FALSE);
-gstring gs = { .size = HEADER_ADD_BUFFER_SIZE, .ptr = 0, .s = buf };
+uschar * p, * q, * buf;
+gstring gs;
 
 if (!header_last) return NULL;
 
 
 if (!header_last) return NULL;
 
+gs.s = buf = store_get(HEADER_ADD_BUFFER_SIZE, FALSE);
+gs.size = HEADER_ADD_BUFFER_SIZE;
+gs.ptr = 0;
+
 if (!string_vformat(&gs, SVFMT_REBUFFER, format, ap))
   log_write(0, LOG_MAIN|LOG_PANIC_DIE, "string too long in header_add: "
     "%.100s ...", string_from_gstring(&gs));
 if (!string_vformat(&gs, SVFMT_REBUFFER, format, ap))
   log_write(0, LOG_MAIN|LOG_PANIC_DIE, "string too long in header_add: "
     "%.100s ...", string_from_gstring(&gs));