summaryrefslogtreecommitdiff
path: root/httpd.c
diff options
context:
space:
mode:
authordefault <nobody@localhost>2023-04-23 15:37:09 +0200
committerdefault <nobody@localhost>2023-04-23 15:37:09 +0200
commit997b17d854db1709686df85fe8dedae0a20ca5fa (patch)
tree0f8399c1789f47d1138b1a072400b2491911e47a /httpd.c
parent177bf03e100216a604eda82400c03d006978d2bc (diff)
Moved JSON output validation to httpd.c.
Diffstat (limited to 'httpd.c')
-rw-r--r--httpd.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/httpd.c b/httpd.c
index 79d489f..70083a1 100644
--- a/httpd.c
+++ b/httpd.c
@@ -266,6 +266,16 @@ void httpd_connection(FILE *f)
srv_archive("RECV", NULL, req, payload, p_size, status, headers, body, b_size);
+ /* JSON validation check */
+ if (strcmp(ctype, "application/json") == 0) {
+ xs *j = xs_json_loads(body);
+
+ if (j == NULL) {
+ srv_log(xs_fmt("bad JSON"));
+ srv_archive_error("bad_json", "bad JSON", req, body);
+ }
+ }
+
xs_free(body);
}