1
0
Fork 0

http: Use null-terminated string for POST data

application/x-www-form-urlencoded-data is (or should be) always text, so
it is preferrable to define struct http_post member "data" as a null-
terminated string.

For applications already making this assumption, this change should now
remove the need for string duplication.
This commit is contained in:
Xavier Del Campo Romero 2023-09-09 02:22:00 +02:00
parent 1790e70e61
commit 5be3ffdd3b
Signed by untrusted user: xavi
GPG Key ID: 84FF3612A9BF43F2
2 changed files with 5 additions and 5 deletions

6
http.c
View File

@ -1716,7 +1716,7 @@ static int read_body_to_mem(struct http_ctx *const h, bool *const close)
struct ctx *const c = &h->ctx;
struct post *const p = &c->post;
if (p->read >= sizeof h->line)
if (p->read >= sizeof h->line - 1)
{
fprintf(stderr, "%s: exceeded maximum length\n", __func__);
return 1;
@ -1738,11 +1738,11 @@ static int read_body_to_mem(struct http_ctx *const h, bool *const close)
.resource = c->resource,
.u.post =
{
.data = h->line,
.n = p->len
.data = h->line
}
};
h->line[p->len] = '\0';
return send_payload(h, &pl);
}

View File

@ -25,8 +25,8 @@ struct http_payload
struct http_post
{
bool expect_continue;
const void *data;
size_t n, nfiles, npairs;
const char *data;
size_t nfiles, npairs;
const struct http_post_pair
{