[BUG] clf logs segfault when capturing a non existant header

Hi Willy,

Please find a small patch to prevent haproxy segfaulting when logging captured headers in CLF format.

Example config to reproduce the bug :
listen test :10080
	log 127.0.0.1 local7 debug err
	mode	http
	option	httplog clf
	capture request header NonExistantHeader len 16

--
Cyril Bonté
diff --git a/src/proto_http.c b/src/proto_http.c
index fea3d36..ad44a2e 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -1018,11 +1018,16 @@
 		for (hdr = 0; hdr < fe->nb_req_cap; hdr++) {
 			if (h >= sizeof (tmpline) + tmpline - 4)
 				goto trunc;
-			*(h++) = ' ';
-			*(h++) = '\"';
-			h = encode_string(h, tmpline + sizeof(tmpline) - 2,
-			                  '#', hdr_encode_map, txn->req.cap[hdr]);
-			*(h++) = '\"';
+			if (txn->req.cap[hdr] != NULL) {
+				*(h++) = ' ';
+				*(h++) = '\"';
+				h = encode_string(h, tmpline + sizeof(tmpline) - 2,
+						'#', hdr_encode_map, txn->req.cap[hdr]);
+				*(h++) = '\"';
+			} else {
+				memcpy(h, " \"-\"", 4);
+				h += 4;
+			}
 		}
 	}
 
@@ -1030,11 +1035,16 @@
 		for (hdr = 0; hdr < fe->nb_rsp_cap; hdr++) {
 			if (h >= sizeof (tmpline) + tmpline - 4)
 				goto trunc;
-			*(h++) = ' ';
-			*(h++) = '\"';
-			h = encode_string(h, tmpline + sizeof(tmpline) - 2,
-			                  '#', hdr_encode_map, txn->rsp.cap[hdr]);
-			*(h++) = '\"';
+			if (txn->rsp.cap[hdr] != NULL) {
+				*(h++) = ' ';
+				*(h++) = '\"';
+				h = encode_string(h, tmpline + sizeof(tmpline) - 2,
+						'#', hdr_encode_map, txn->rsp.cap[hdr]);
+				*(h++) = '\"';
+			} else {
+				memcpy(h, " \"-\"", 4);
+				h += 4;
+			}
 		}
 	}