]> git.kaiwu.me - haproxy.git/commitdiff
BUG/MINOR: http-conv: Make url-dec failed if no space for trailing null byte
authorChristopher Faulet <cfaulet@haproxy.com>
Tue, 7 Jul 2026 09:54:05 +0000 (11:54 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 8 Jul 2026 06:52:07 +0000 (08:52 +0200)
for url-dec converter, a trailing null byte is added at the end of the input
sample because it is requested by url_decode() function. However, when the
buffer was full, the last byte was crushed by the trailing null byte. In
that case, the last character was lost and not decoded.

Now, the converter just fails by returning 0.

This patch could be backported to all supported versions but it is a very
minor issue.

src/http_conv.c

index 5449f7adc590e71c417577341ae9735b99e7d703..ed276b2e8ea2cd66195bca6aa515896ab1f373dd 100644 (file)
@@ -273,6 +273,9 @@ static int sample_conv_url_dec(const struct arg *args, struct sample *smp, void
                smp->flags &= ~SMP_F_CONST;
        }
 
+       if (smp->data.u.str.size <= smp->data.u.str.data)
+               return 0;
+
        /* Add final \0 required by url_decode(), and convert the input string. */
        smp->data.u.str.area[smp->data.u.str.data] = '\0';