Fix case where URL has extra trailing '/'
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 8s
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 8s
This commit is contained in:
parent
ea88466a98
commit
f15452baa4
2 changed files with 10 additions and 5 deletions
13
src/http.c
13
src/http.c
|
@ -199,14 +199,19 @@ char *c_simple_http_strip_path(const char *path, size_t path_size) {
|
|||
}
|
||||
}
|
||||
|
||||
if (idx >= path_size || path[idx] == 0) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
char *stripped_path = malloc(idx + 1);
|
||||
memcpy(stripped_path, path, idx);
|
||||
stripped_path[idx] = 0;
|
||||
|
||||
// Strip trailing '/'.
|
||||
while (idx-- > 1) {
|
||||
if (stripped_path[idx] == '/' || stripped_path[idx] == 0) {
|
||||
stripped_path[idx] = 0;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return stripped_path;
|
||||
}
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ char *c_simple_http_request_response(
|
|||
|
||||
/// Takes a PATH string and returns a "bare" path.
|
||||
/// This will simply omit the first instance of "?" or "#" and the rest of the
|
||||
/// string.
|
||||
/// string. This will also remove trailing "/" characters.
|
||||
/// Must be free'd if returns non-NULL.
|
||||
char *c_simple_http_strip_path(const char *path, size_t path_size);
|
||||
|
||||
|
|
Loading…
Reference in a new issue