aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorame <[email protected]>2026-01-26 20:09:45 -0600
committerame <[email protected]>2026-01-26 20:09:45 -0600
commit24098695eb033bc62c2301a6b5ec76feeddfcfed (patch)
tree638c3ce83992ed6a7db66c0525c74b08224eb9e8
parent5744d856e69f0fd1c518ad5ab6af716ac530382f (diff)
fix decoding edge case
-rw-r--r--src/net.c5
-rw-r--r--src/net/util.c1
2 files changed, 5 insertions, 1 deletions
diff --git a/src/net.c b/src/net.c
index c9fdc08..d2f4e17 100644
--- a/src/net.c
+++ b/src/net.c
@@ -859,7 +859,10 @@ void* handle_client(void *_arg){
parray_t* par = params->arr[id].value;
for(int z = 0; z != par->len; z++){
- luaI_tsets(L, new_param_idx, par->P[z].key->c, (char*)par->P[z].value);
+ char* v = ((char*)par->P[z].value);
+ for(int u = 0; v[u] != '\0'; u++)
+ if(v[u] == '%') v[u] = '/';
+ luaI_tsets(L, new_param_idx, par->P[z].key->c, v);
}
parray_clear(par, FREE);
diff --git a/src/net/util.c b/src/net/util.c
index bada160..62b394c 100644
--- a/src/net/util.c
+++ b/src/net/util.c
@@ -546,6 +546,7 @@ int percent_decode(str* input, str** _output){
return 1;
}
+ if(c == '/') c = '%';
str_pushl(output, ((char*)&c), 1);
str_free(hex);
i += 2;