BUG/MEDIUM: http-conv: Fix url_enc() to not crush const samples

url_enc() encodes an input string by calling encode_string(). To do so, it
adds a trailing '\0' to the sample string. However it never restores the
sample string at the end. It is a problem for const samples. The sample
string may be in the middle of a buffer. For instance, the HTTP headers
values are concerned.

However, instead of modifying the sample string, it is easier to rely on
encode_chunk() function. It does the same but on a buffer.

This patch must be backported as far as 2.2.
diff --git a/src/http_conv.c b/src/http_conv.c
index 121a498..f33336a 100644
--- a/src/http_conv.c
+++ b/src/http_conv.c
@@ -324,16 +324,13 @@
 	enc_type = ENC_QUERY;
 	enc_type = args->data.sint;
 
-	/* Add final \0 required by encode_string() */
-	smp->data.u.str.area[smp->data.u.str.data] = '\0';
-
 	if (enc_type == ENC_QUERY)
 		encode_map = query_encode_map;
 	else
 		return 0;
 
-	ret = encode_string(trash->area, trash->area + trash->size, '%',
-			    encode_map, smp->data.u.str.area);
+	ret = encode_chunk(trash->area, trash->area + trash->size, '%',
+			   encode_map, &smp->data.u.str);
 	if (ret == NULL || *ret != '\0')
 		return 0;
 	trash->data = ret - trash->area;