summaryrefslogtreecommitdiff
path: root/networking/httpd.c
diff options
context:
space:
mode:
Diffstat (limited to 'networking/httpd.c')
-rw-r--r--networking/httpd.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/networking/httpd.c b/networking/httpd.c
index 5df493b..70a024b 100644
--- a/networking/httpd.c
+++ b/networking/httpd.c
@@ -1615,13 +1615,6 @@ BAD_REQUEST:
*purl = ' ';
count = sscanf(purl, " %[^ ] HTTP/%d.%*d", buf, &blank);
- test = decodeString(buf, 0);
- if(test == NULL)
- goto BAD_REQUEST;
- if(test == (buf+1)) {
- sendHeaders(HTTP_NOT_FOUND);
- break;
- }
if (count < 1 || buf[0] != '/') {
/* Garbled request/URL */
goto BAD_REQUEST;
@@ -1639,6 +1632,13 @@ BAD_REQUEST:
config->query = test;
}
+ test = decodeString(url, 0);
+ if(test == NULL)
+ goto BAD_REQUEST;
+ if(test == (buf+1)) {
+ sendHeaders(HTTP_NOT_FOUND);
+ break;
+ }
/* algorithm stolen from libbb bb_simplify_path(),
but don`t strdup and reducing trailing slash and protect out root */
purl = test = url;