Commit Graph

2774 Commits

Author SHA1 Message Date
Glenn Strauss d825966739 [core] reject Transfer-Encoding from proxy (#2913)
reject Transfer-Encoding from backend for mod_proxy.
mod_proxy currently sends HTTP/1.0 requests to the backend,
for which Transfer-Encoding: chunked is not a valid response header.
Additionally, there is no value to Transfer-Encoding: chunked from
backend since lighttpd mod_proxy sends HTTP/1.0 request along with
Connection: close, so the backend closing the socket is the end of
the response from the backend.

x-ref:
  "Reverse proxy does not work with sandstorm"
  https://redmine.lighttpd.net/issues/2913
2018-10-07 20:10:14 -04:00
Glenn Strauss 7a7f4f987a [mod_openssl] no renegotiation in TLS 1.3 (fixes #2912)
x-ref:
  "OpenSSL 1.1.1: renegotiation initiated by client, killing connection"
  https://redmine.lighttpd.net/issues/2912
2018-10-06 05:07:28 -04:00
Glenn Strauss 4674d2d180 [core] fix missing param from prev commit 2018-10-05 10:17:46 -04:00
Glenn Strauss 877ac2942a [core] better consistency in buffer_is_equal*()
buffer_is_equal_caseless_string() now correctly matches against
the string only up to the provided string length, since the
string might not be '\0' terminated.
2018-10-05 01:05:44 -04:00
Glenn Strauss 7af5ba92ed [core] PATH_INFO calculation when basedir is "/" (fixes #2911)
PATH_INFO calculation when basedir is "/" or empty

x-ref:
  "pathinfo not recognized if basedir is empty"
  https://redmine.lighttpd.net/issues/2911
2018-10-04 23:32:41 -04:00
Glenn Strauss e3c39f5cbc [meson] build fixes for libmariadb and libsasl2
(commented out test for libmysqlclient in favor of libmariadb)
2018-09-29 22:53:39 -04:00
Glenn Strauss d6bd929e5d [build] put request.c in common src
put request.c in common src for CMake, SCons, and meson builds
(request.c is already in common source list in Makefile.am)
2018-09-29 22:09:58 -04:00
Glenn Strauss 233db8d668 [TLS] sys-crypto.h abstraction
(add the header)
2018-09-26 08:23:36 -04:00
Glenn Strauss 368630d925 [TLS] sys-crypto.h abstraction 2018-09-26 01:08:24 -04:00
Glenn Strauss e1f21b2adb [mod_secdownload] support if HMAC() is a macro
support if HMAC() is a macro, which may not handle CONST_BUF_LEN()
expanding to two arguments
2018-09-25 21:42:57 -04:00
Glenn Strauss 5b327e0089 [multiple] quiet compiler warnings --without-pcre
quiet compiler warnings for ./configure --without-pcre
2018-09-25 20:49:25 -04:00
Glenn Strauss 0257c822c0 [core] quiet coverity false positive 2018-09-25 20:40:36 -04:00
Glenn Strauss 070ce5b618 [mod_deflate] null-check to quiet coverity warning 2018-09-25 20:24:19 -04:00
Glenn Strauss 7e20dc6a42 [mod_userdir] security: skip username "." and ".."
On systems without getpwnam(), disallow username "." and "..", and
disallow usernames beginning with '.' if userdir.letterhomes = "enabled"
2018-09-25 11:21:41 -04:00
Glenn Strauss 6edd040b22 [build] fix SCons build for mod_authn_pam 2018-09-24 02:03:36 -04:00
Glenn Strauss 65fcd7810f [core] prefer buffer_append_string_len()
prefer buffer_append_string_len() when string len is known
(instead of buffer_append_string() which will recalculate strlen)
2018-09-23 19:18:49 -04:00
Glenn Strauss b61ed6da2a [core] http_method_append() 2018-09-23 19:18:47 -04:00
Glenn Strauss 90c30d5e90 [core] http_status_append() 2018-09-23 19:18:25 -04:00
Glenn Strauss b192231392 [core] log_failed_assert() __attribute__((cold)) 2018-09-23 18:01:58 -04:00
Glenn Strauss 2dbcfc9266 [core] inline status_counter routines 2018-09-23 18:01:58 -04:00
Glenn Strauss c98d89a4bb [tests] #undef NDEBUG before assert.h in t/test_* 2018-09-23 18:01:58 -04:00
Glenn Strauss 8c7f1dfb03 [core] more memory-efficient fn table for data_*
save 40 bytes (64-bit), or 16 bytes (32-bit) per data_* element
at the cost of going through indirect function pointer to execute
methods.  At runtime, the reset() method is most used among them.
2018-09-23 18:01:58 -04:00
Glenn Strauss 002a4c524d [core] array_get_int_ptr() 2018-09-23 18:01:58 -04:00
Glenn Strauss 66ff05db8f [tests] t/test_array.c
(more tests should be added, but starting with something has benefits)
2018-09-23 18:01:58 -04:00
Glenn Strauss 810109cc34 [multiple] code reuse: using array_*() funcs 2018-09-23 18:01:58 -04:00
Glenn Strauss 2b40854ab9 [core] fix include_shell on inline shell commands (fixes #2910)
regression in lighttpd 1.4.50

x-ref:
  "include_shell behavior change in 1.4.50"
  https://redmine.lighttpd.net/issues/2910
2018-09-23 18:01:58 -04:00
Glenn Strauss fc1ddbed33 [mod_sockproxy] add to build
(experimental)
2018-09-23 18:01:58 -04:00
Glenn Strauss df4812ec2e [mod_authn_pam] mod_auth PAM support (fixes #688)
x-ref:
  "auth via pam"
  https://redmine.lighttpd.net/issues/688
2018-09-23 18:01:58 -04:00
Glenn Strauss 5c2d52b4ac [mod_flv_streaming] code simplifications 2018-09-23 18:01:58 -04:00
Glenn Strauss ae9f354bae [doc] lighttpd.service uses network-online.target
doc/systemd/lighttpd.service now uses After=network-online.target
instead of After=network.target, as recommended in
  https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/

(thx janik)
2018-09-23 18:01:58 -04:00
Glenn Strauss d61f33817c [multiple] code reuse: employ array_match_*() 2018-09-23 18:01:58 -04:00
Glenn Strauss 863dff6191 [mod_skeleton] review and simplify 2018-09-23 18:01:58 -04:00
Glenn Strauss e6741acd4e [core] code reuse array_match_*() routines 2018-09-23 18:01:58 -04:00
Glenn Strauss 6b887f35e3 [mod_auth] send 401 for mismatch HTTP auth scheme (fixes #2906)
x-ref:
  "Lighttpd responds with 400 not 401"
  https://redmine.lighttpd.net/issues/2906
2018-09-23 18:01:58 -04:00
Glenn Strauss 4992c4de10 [mod_fastcgi,mod_scgi] error on oversized request (fixes #2905)
regression in lighttpd 1.4.49 and lighttpd 1.4.50

(thx slawomir.pryczek)

x-ref
  "oversized fcgi requests should fail gracefully"
  https://redmine.lighttpd.net/issues/2905
2018-09-23 18:01:58 -04:00
Glenn Strauss a458c2e731 [mod_proxy,mod_wstunnel] copy full plugin_config (fixes #2903)
x-ref:
  "gw backend redesign"
  https://redmine.lighttpd.net/issues/2903
2018-09-23 18:01:58 -04:00
Glenn Strauss 5045a9e833 [core] fastcgi.h link to Open Market License (OML) (fixes #2901)
x-ref:
  "License terms of fastcgi.h"
  https://redmine.lighttpd.net/issues/2901
2018-09-23 18:01:58 -04:00
Glenn Strauss 2eabe1636c [mod_rewrite] fix url.rewrite-repeat and url.rewrite-if-not-file (fixes #2908)
regression in lighttpd 1.4.50

x-ref:
  "mod_rewrite now throws error ENDLESS LOOP IN rewrite-rule DETECTED"
  https://redmine.lighttpd.net/issues/2908
2018-09-23 18:01:58 -04:00
Glenn Strauss eebc1b0eec [mod_proxy] fix proxy.forwarded and proxy.replace-http-host (fixes #2902)
config settings were not being copied into proxy request context

x-ref:
  "mod_proxy's “proxy.forwarded” option seems ignored when used with mod_auth."
  https://redmine.lighttpd.net/issues/2902
2018-09-23 18:01:58 -04:00
Glenn Strauss 9725299587 [core] code reuse with http_response_body_clear()
code reuse with http_response_body_clear()
rename con->response.transfer_encoding to con->response.send_chunked
2018-09-23 18:01:58 -04:00
Glenn Strauss 3dd3cde902 [core] abstraction layer for HTTP header manip
http_header.[ch]
convert existing calls to manip request/response headers
convert existing calls to manip environment array (often header-related)
2018-09-23 18:01:58 -04:00
Glenn Strauss c8159ee5f6 [core] http_request_parse_reqline() separate func
http_request_parse_reqline() separate func from http_request_parse()
600+ line http_request_parse() is now two routines with ~300 lines each
2018-09-16 05:18:05 -04:00
Glenn Strauss 28d6015b45 [core] simplify parsing hdr key whitespace then : 2018-09-16 05:18:05 -04:00
Glenn Strauss a7c27c9f99 [core] code reuse with array_insert_key_value()
code reuse with array_insert_key_value() and related array manipulation
2018-09-16 05:18:05 -04:00
Glenn Strauss a90526374f [core] abstraction to insert/modify response hdrs
consistent use of abstraction to insert/modify response headers
2018-09-16 05:18:05 -04:00
Glenn Strauss 9d3cbaa74c [core] parse header line strings before copying 2018-09-16 05:18:05 -04:00
Glenn Strauss ad27206608 [core] redo HTTP header line folding
Replace separators between folded header lines in-place using spaces
and then process the single header line.

(Reverts change which replaces folding whitespace with single space)

Acknowledgement: Or Peles of VDOO  reference: VD-0871, VD-0872, VD-0873
(thx Or Peles)
2018-09-16 05:18:05 -04:00
Stefan Bühler e0260a411d [buffer] fix duplicate assert and comment
this originates from ad3e93ea9 for no apparent reason
2018-08-26 18:52:22 +02:00
Stefan Bühler 3be0707839 [core] replace folding whitespace with a single space
- previously the leading whitespace from folded lines was kept
- also ignore lines without any data
2018-08-26 18:52:22 +02:00
Stefan Bühler df8e4f9561 [core,security] process headers after combining folded headers
- this fixes various use-after-free scenarios (reported by Or Peles of
  VDOO): when parse_single_header stores pointers to header values in
  con->request, those pointers are not updated if the header value is
  reallocated when folded header lines are appended.
- also remove trailing white-space from folded lines
2018-08-26 18:44:46 +02:00