Browse Source

Avoid crashing on missing 'method' or 'path' headers in httpd_connection().

default 1 year ago
parent
commit
195c21ab2e
1 changed files with 7 additions and 2 deletions
  1. 7 2
      httpd.c

+ 7 - 2
httpd.c

@@ -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, "/"))