diff options
author | default <nobody@localhost> | 2023-12-18 09:35:22 +0100 |
---|---|---|
committer | default <nobody@localhost> | 2023-12-18 09:35:22 +0100 |
commit | 195c21ab2eb3217e9a018dd928e06c201f00a791 (patch) | |
tree | e11212acaacc0a352e491c894d5a0121e2b3d164 /httpd.c | |
parent | af912dba0b37e27bbd95e6ee6057289c6d9540bb (diff) |
Avoid crashing on missing 'method' or 'path' headers in httpd_connection().
Diffstat (limited to 'httpd.c')
-rw-r--r-- | httpd.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -245,8 +245,13 @@ void httpd_connection(FILE *f) return; } - method = xs_dict_get(req, "method"); - q_path = xs_dup(xs_dict_get(req, "path")); + if (!(method = xs_dict_get(req, "method")) || !(p = xs_dict_get(req, "path"))) { + /* missing needed headers; discard */ + fclose(f); + return; + } + + q_path = xs_dup(p); /* crop the q_path from leading / and the prefix */ if (xs_endswith(q_path, "/")) |