Don't replace '+' with ' ' when decoding URLs

After the initial report by Platon Ryzhikov, I couldn't validate this
behaviour with the given RFC 3986[0], which only speaks of percent encoding
for reserved characters.

[0]:https://tools.ietf.org/html/rfc3986

Signed-off-by: Laslo Hunhold <dev@frign.de>
This commit is contained in:
Laslo Hunhold 2019-01-10 22:02:23 +01:00
parent bbd47e1427
commit e299e186ed
No known key found for this signature in database
GPG key ID: 69576BD24CFCB980

4
http.c
View file

@ -80,9 +80,7 @@ decode(char src[PATH_MAX], char dest[PATH_MAX])
char *s; char *s;
for (s = src, i = 0; *s; s++, i++) { for (s = src, i = 0; *s; s++, i++) {
if (*s == '+') { if (*s == '%' && (sscanf(s + 1, "%2hhx", &n) == 1)) {
dest[i] = ' ';
} else if (*s == '%' && (sscanf(s + 1, "%2hhx", &n) == 1)) {
dest[i] = n; dest[i] = n;
s += 2; s += 2;
} else { } else {