mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-24 15:21:29 +02:00
BUG/MEDIUM: http: Return an error when url_dec sample converter failed
url_dec sample converter uses url_decode function to decode an URL. This function fails by returning -1 when an invalid character is found. But the sample converter never checked the return value and it used it as length for the decoded string. Because it always succeeded, the invalid sample (with a string length set to -1) could be used by other sample fetches or sample converters, leading to undefined behavior like segfault. The fix is pretty simple, url_dec sample converter just needs to return an error when url_decode fails. This patch must be backported in 1.7 and 1.6.
This commit is contained in:
parent
017af2477e
commit
a258479e3f
@ -12414,7 +12414,7 @@ static int sample_conv_url_dec(const struct arg *args, struct sample *smp, void
|
||||
/* Add final \0 required by url_decode(), and convert the input string. */
|
||||
smp->data.u.str.str[smp->data.u.str.len] = '\0';
|
||||
smp->data.u.str.len = url_decode(smp->data.u.str.str);
|
||||
return 1;
|
||||
return (smp->data.u.str.len >= 0);
|
||||
}
|
||||
|
||||
static int smp_conv_req_capture(const struct arg *args, struct sample *smp, void *private)
|
||||
|
Loading…
x
Reference in New Issue
Block a user