diff options
Diffstat (limited to 'url.c')
-rw-r--r-- | url.c | 18 |
1 files changed, 17 insertions, 1 deletions
@@ -34,6 +34,22 @@ #include "url.h" +bool +check_request_path(char *path) +{ + char *p_found; + + if (strlen(path) >= URL_LENGTH_MAX) + return false; + + p_found = strstr(path, "/.."); + if (p_found != NULL) + return false; + + p_found = strstr(path, "../"); + return p_found == NULL; +} + size_t url_build(char *dst, size_t dst_size, int count,...) { @@ -60,7 +76,7 @@ url_build(char *dst, size_t dst_size, int count,...) continue; if (path[0] != '/' && dst[w_size - 1] != '/') - w_size = strlcat(dst, "/", dst_size); + strlcat(dst, "/", dst_size); w_size = strlcat(dst, path, dst_size); } |