Commit Graph

50 Commits

Author SHA1 Message Date
Glenn Strauss 06d3c75440 [core] respond 411 Length Required if request has Transfer-Encoding: chunked (fixes #631)
lighttpd does not currently support request body transfer-codings

From: Glenn Strauss <gstrauss@gluelogic.com>

git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3128 152afb58-edef-0310-8abb-c4023f1b3aa9
2016-03-26 12:58:33 +00:00
Glenn Strauss 8abd06a7ff consistent inclusion of config.h at top of files (fixes #2073)
From: Glenn Strauss <gstrauss@gluelogic.com>

git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3113 152afb58-edef-0310-8abb-c4023f1b3aa9
2016-03-19 15:14:35 +00:00
Stefan Bühler ad3e93ea96 Use buffer API to read and modify "used" member
- a lot of code tried to handle manually adding terminating zeroes and
  keeping track of the correct "used" count.
  Replaced all "external" usages with simple wrapper functions:
  * buffer_string_is_empty (used <= 1), buffer_is_empty (used == 0);
    prefer buffer_string_is_empty
  * buffer_string_set_length
  * buffer_string_length
  * CONST_BUF_LEN() macro
- removed "static" buffer hacks (buffers pointing to constant/stack
  memory instead of malloc()ed data)
- buffer_append_strftime(): refactor buffer+strftime uses
- li_tohex(): no need for a buffer for binary-to-hex conversion:
  the output data length is easy to predict
- remove "-Winline" from extra warnings: the "inline" keyword just
  supresses the warning about unused but defined (static) functions;
  don't care whether it actually gets inlined or not.

From: Stefan Bühler <stbuehler@web.de>

git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2979 152afb58-edef-0310-8abb-c4023f1b3aa9
2015-02-08 19:10:44 +00:00
Stefan Bühler 6afad87d2e fix buffer, chunk and http_chunk API
* remove unused structs and functions
    (buffer_array, read_buffer)
  * change return type from int to void for many functions,
    as the return value (indicating error/success) was never checked,
    and the function would only fail on programming errors and not on
    invalid input; changed functions to use force_assert instead of
    returning an error.
  * all "len" parameters now are the real size of the memory to be read.
    the length of strings is given always without the terminating 0.
  * the "buffer" struct still counts the terminating 0 in ->used,
    provide buffer_string_length() to get the length of a string in a
    buffer.
    unset config "strings" have used == 0, which is used in some places
    to distinguish unset values from "" (empty string) values.
  * most buffer usages should now use it as string container.
  * optimise some buffer copying by "moving" data to other buffers
  * use (u)intmax_t for generic int-to-string functions
  * remove unused enum values: UNUSED_CHUNK, ENCODING_UNSET
  * converted BUFFER_APPEND_SLASH to inline function (no macro feature
    needed)
  * refactor: create chunkqueue_steal: moving (partial) chunks into another
    queue
  * http_chunk: added separate function to terminate chunked body instead of
    magic handling in http_chunk_append_mem().
    http_chunk_append_* now handle empty chunks, and never terminate the
    chunked body.

From: Stefan Bühler <stbuehler@web.de>

git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2975 152afb58-edef-0310-8abb-c4023f1b3aa9
2015-02-08 12:37:10 +00:00
Stefan Bühler d1a2356916 fix SQL injection / host name validation (thx Jann Horn)
From: Stefan Bühler <stbuehler@web.de>

git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2959 152afb58-edef-0310-8abb-c4023f1b3aa9
2014-03-12 12:03:55 +00:00
Stefan Bühler 29a1070299 add comments for switch fall throughs
From: Stefan Bühler <stbuehler@web.de>

git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2944 152afb58-edef-0310-8abb-c4023f1b3aa9
2014-02-14 21:06:12 +00:00
Stefan Bühler 9b36534752 [core] return 501 Not Implemented in static file mode for all methods except GET/POST/HEAD/OPTIONS
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2882 152afb58-edef-0310-8abb-c4023f1b3aa9
2013-06-29 10:53:22 +00:00
Stefan Bühler b5da12c008 reject non ASCII characters in HTTP header names
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2868 152afb58-edef-0310-8abb-c4023f1b3aa9
2013-03-25 17:22:36 +00:00
Stefan Bühler 79fed4ec04 remove whitespace at end of header keys
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2861 152afb58-edef-0310-8abb-c4023f1b3aa9
2012-11-21 12:01:46 +00:00
Stefan Bühler 6edfc40f93 fix DoS in Connection header value split (reported by Jesse Sipprell, CVE-2012-5533)
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2860 152afb58-edef-0310-8abb-c4023f1b3aa9
2012-11-21 12:01:44 +00:00
Cyril Brulebois 9c43331382 Use NULL instead of 0 where pointers are expected.
There are 6 remaining occurrences after this commit, in mod_compress,
due to zlib's Z_NULL being defined as 0 instead of NULL.

Signed-off-by: Cyril Brulebois <kibi@debian.org>

git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2845 152afb58-edef-0310-8abb-c4023f1b3aa9
2012-08-31 14:11:43 +00:00
Stefan Bühler 01f9debec3 Fix handling of empty header list entries in http_request_split_value, fixing invalid read in valgrind (fixes #2413)
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2830 152afb58-edef-0310-8abb-c4023f1b3aa9
2012-04-19 13:02:06 +00:00
Stefan Bühler b748fb890d [core] accept dots in ipv6 addresses in host header (fixes #2359)
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2811 152afb58-edef-0310-8abb-c4023f1b3aa9
2011-11-30 20:46:49 +00:00
Stefan Bühler 17d0c36eed Read hostname from absolute uris in the request line (fixes #1937)
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2631 152afb58-edef-0310-8abb-c4023f1b3aa9
2009-10-11 18:31:25 +00:00
Stefan Bühler 22e8b456a9 Fix header inclusion order, always include "config.h" before any system header
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2624 152afb58-edef-0310-8abb-c4023f1b3aa9
2009-10-11 14:31:42 +00:00
Stefan Bühler b87d3e804b Allow digits in hostnames in more places (fixes #1148)
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2586 152afb58-edef-0310-8abb-c4023f1b3aa9
2009-07-14 12:57:27 +00:00
Stefan Bühler 1b2cc3bb66 Show "no uri specified -> 400" error only when "debug.log-request-header-on-error" is enabled (fixes #2030)
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2583 152afb58-edef-0310-8abb-c4023f1b3aa9
2009-07-13 13:48:29 +00:00
Stefan Bühler 3af67d1392 Ignore multiple "If-None-Match" headers (only use first one, fixes #753)
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2528 152afb58-edef-0310-8abb-c4023f1b3aa9
2009-06-11 10:18:36 +00:00
Stefan Bühler ef59a62724 Strip trailing dot from "Host:" header
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2430 152afb58-edef-0310-8abb-c4023f1b3aa9
2009-04-09 16:51:36 +00:00
Stefan Bühler 63f785a2f8 Added some extra warning options in cmake and fix the resulting warnings (unused/static functions)
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2414 152afb58-edef-0310-8abb-c4023f1b3aa9
2009-03-07 21:05:37 +00:00
Stefan Bühler e2fd8a89c1 Fix wrong format strings (#1900, thx stepancheg)
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2394 152afb58-edef-0310-8abb-c4023f1b3aa9
2009-02-16 13:42:38 +00:00
Stefan Bühler 83e2296c02 Allow tabs in header values (fixes #1822)
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2391 152afb58-edef-0310-8abb-c4023f1b3aa9
2009-02-05 22:07:59 +00:00
Stefan Bühler cb91487c8d Add option to ignore the "Expect: 100-continue" header instead of returning 417 Expectation failed (closes #1017)
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2385 152afb58-edef-0310-8abb-c4023f1b3aa9
2009-02-04 15:16:29 +00:00
Stefan Bühler 3decb2647b Fix memleak in request header parsing (#1774, thx qhy)
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2305 152afb58-edef-0310-8abb-c4023f1b3aa9
2008-09-20 13:42:14 +00:00
Jan Kneschke f67cdb67df fixed handling of duplicate If-Modified-Since to return 304
- don't append the second string to the first, but free it instead


git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@1947 152afb58-edef-0310-8abb-c4023f1b3aa9
2007-08-18 11:14:12 +00:00
Jan Kneschke 8f8e23f636 fixed invalid chars in header values (fixes #1286)
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@1928 152afb58-edef-0310-8abb-c4023f1b3aa9
2007-08-17 21:49:13 +00:00
Jan Kneschke 9e4e4f7e1a fixed remote crash on duplicate header keys with line-wrapping (fixes #1230)
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@1869 152afb58-edef-0310-8abb-c4023f1b3aa9
2007-06-15 14:08:32 +00:00
Jan Kneschke 76e55e958c strip trailing white-spaces in HTTP-request headers
before we parse them (fixes #1098)


git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@1727 152afb58-edef-0310-8abb-c4023f1b3aa9
2007-04-09 18:55:21 +00:00
Marcus Rückert 4a609547a0 r1435@h2o: darix | 2006-11-10 18:25:42 +0100
"www.example.com." is equivalent to "www.example.com".
 The trailing dot just tells the resolver to script the searchlist.
 
 If we want to match the hostname for conditionals/mod*vhost,
 we need to strip it.
 
 * src/request.c: (request_check_hostname) Decrement host_len to skip
   the trailing dot.
 


git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@1406 152afb58-edef-0310-8abb-c4023f1b3aa9
2006-11-10 17:37:19 +00:00
Marcus Rückert 8cd1471cb3 - white space cleanup part 2 this time 1.4 ;)
i hope it helps with merging stuff back to 1.5

git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@1371 152afb58-edef-0310-8abb-c4023f1b3aa9
2006-10-04 13:26:23 +00:00
Jan Kneschke 0b8de4b3ec allow leading zeros in HTTP/01.01 (fixes #542)
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-merge-1.4.x@1025 152afb58-edef-0310-8abb-c4023f1b3aa9
2006-03-04 17:10:47 +00:00
Jan Kneschke c76b19673a allow proxy to svn-apache do a commit
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-merge-1.4.x@1015 152afb58-edef-0310-8abb-c4023f1b3aa9
2006-03-02 23:31:40 +00:00
Jan Kneschke 24ff4eb0ab only load reasons for broken HTTP headers on request
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-merge-1.4.x@980 152afb58-edef-0310-8abb-c4023f1b3aa9
2006-02-02 11:51:10 +00:00
Jan Kneschke c6273f69a8 fixed indention
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-merge-1.4.x@972 152afb58-edef-0310-8abb-c4023f1b3aa9
2006-02-01 11:33:54 +00:00
Jan Kneschke 0ef0742654 added a comment what to do before we have Expect: support
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-merge-1.4.x@920 152afb58-edef-0310-8abb-c4023f1b3aa9
2006-01-04 23:30:42 +00:00
Jan Kneschke 28db0418f2 MSIE sends Content-Length: 0 for OPTIONS requests, tolerate that
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-merge-1.4.x@911 152afb58-edef-0310-8abb-c4023f1b3aa9
2006-01-03 15:16:03 +00:00
Jan Kneschke 580823f791 forbid Content-Length for GET, HEAD or OPTIONS requests
allow duplicate If-Modified-Since headers if they are equal


git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-merge-1.4.x@907 152afb58-edef-0310-8abb-c4023f1b3aa9
2006-01-03 13:59:46 +00:00
Jan Kneschke 95132d93c8 fixed warnings about unused vars and unhandled enum-values in switch()
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-merge-1.4.x@821 152afb58-edef-0310-8abb-c4023f1b3aa9
2005-11-07 13:13:50 +00:00
Jan Kneschke ac7db634f6 detect empty URIs in requests as bad request, status 400
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-merge-1.4.x@773 152afb58-edef-0310-8abb-c4023f1b3aa9
2005-10-02 21:50:51 +00:00
Jan Kneschke c440468249 max-request-size was not respected since a long time
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-merge-1.4.x@736 152afb58-edef-0310-8abb-c4023f1b3aa9
2005-09-26 08:49:13 +00:00
Jan Kneschke 163c25a2a9 added MOVE, COPY, PROPPATCH and nearly complete PROPFIND (Level 1-3 of litmus passed)
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-merge-1.4.x@593 152afb58-edef-0310-8abb-c4023f1b3aa9
2005-08-20 19:10:44 +00:00
Jan Kneschke d8394f7f2e moved code to mod_staticfile, mod_dirlisting and mod_indexfile
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-merge-1.4.x@541 152afb58-edef-0310-8abb-c4023f1b3aa9
2005-08-15 09:55:23 +00:00
Jan Kneschke e6c1e139e2 ah, don't care about the valid chars, control-chars, 127 and 255 are out
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.3.x@433 152afb58-edef-0310-8abb-c4023f1b3aa9
2005-07-09 20:17:40 +00:00
Jan Kneschke 533e8047c0 improve readability for error in request header error (fix #101)
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.3.x@379 152afb58-edef-0310-8abb-c4023f1b3aa9
2005-06-12 09:26:19 +00:00
Jan Kneschke acfe706d73 Looks like the '+' -> ' ' transformation is only applied in the ?query part and not the rel-path.
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.3.x@366 152afb58-edef-0310-8abb-c4023f1b3aa9
2005-06-04 15:42:31 +00:00
Jan Kneschke 3caa67a131 added | to the non-rfc characters in URI
git-svn-id: svn://svn.lighttpd.net/lighttpd/trunk@71 152afb58-edef-0310-8abb-c4023f1b3aa9
2005-03-02 09:11:42 +00:00
Jan Kneschke 0f779ce2f9 fixed #25 by setting all duplicates to 400
git-svn-id: svn://svn.lighttpd.net/lighttpd/trunk@60 152afb58-edef-0310-8abb-c4023f1b3aa9
2005-03-01 10:55:47 +00:00
Jan Kneschke 6a822b673e Don't use broken http_host pointer for debugging.
This circumvents a crash but is not a final fix
as the reason fo the crash hasn't been found yet.



git-svn-id: svn://svn.lighttpd.net/lighttpd/trunk@48 152afb58-edef-0310-8abb-c4023f1b3aa9
2005-02-28 08:40:00 +00:00
Jan Kneschke 44997909b1 fix segfault in log_error_write if host is empty
git-svn-id: svn://svn.lighttpd.net/lighttpd/trunk@38 152afb58-edef-0310-8abb-c4023f1b3aa9
2005-02-22 00:17:11 +00:00
Jan Kneschke bcdc6a3bbc moved everything below trunk/ and added branches/ and tags/
git-svn-id: svn://svn.lighttpd.net/lighttpd/trunk@30 152afb58-edef-0310-8abb-c4023f1b3aa9
2005-02-20 14:27:00 +00:00