listen_loop(): When shutting down gracefully, close listening ports
[privoxy.git] / ChangeLog
index 7ad3b1d..f399120 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 --------------------------------------------------------------------
 ChangeLog for Privoxy
 --------------------------------------------------------------------
+*** Version 3.0.33 UNRELEASED ***
+
+- Bug fixes:
+  - handle_established_connection(): Skip the poll()/select() calls
+    if TLS data is pending on the server socket. The TLS library may
+    have already consumed all the data from the server response in
+    which case poll() and select() will not detect that data is
+    available to be read.
+    Fixes SF bug #926 reported by Wen Yue.
+  - continue_https_chat(): Update csp->server_connection.request_sent
+    after sending the request to make sure the latency is calculated
+    correctly. Previously https connections were not reused after
+    timeout seconds after the first request made on the connection.
+  - free_pattern_spec(): Don't try to free an invalid pointer
+    when unloading an action file with a TAG pattern while
+    Privoxy has been compiled without FEATURE_PCRE_HOST_PATTERNS.
+    Closes: SF patch request #147. Patch by Maxim Antonov.
+  - Establish the TLS connection with the client earlier and decide
+    how to route the request afterwards. This allows to change the
+    forwarding settings based on information from the https-inspected
+    request, for example the path.
+    Adjust build_request_line() to create a CONNECT request line when
+    https-inspecting and forwarding to a HTTP proxy.
+    Fixes SF bug #925 reported by Wen Yue.
+  - load_config(): Add a space that was missing in a log message.
+
+- General improvements:
+  - serve(): Close the client socket as well if the server socket
+    for an inspected connection has been closed. Privoxy currently
+    can't establish a new server connection when the client socket
+    is reused and would drop the connection in continue_https_chat()
+    anyway.
+  - Don't disable redirect checkers in redirect_url()
+    Disable them in handle_established_connection() instead.
+    Doing it in redirect_url() prevented the +redirect{} and
+    +fast-redirects{} actions from being logged with LOG_LEVEL_ACTIONS.
+  - handle_established_connection(): Slightly improve a comment
+  - handle_established_connection(): Fix a comment
+  - socks5_connect(): Fix indentation.
+  - handle_established_connection(): Improve an error message
+  - create_pattern_spec(): Fix ifdef indentation
+  - Fix comment typos
+
+- Action file improvements:
+  - Disable fast-redirects for .microsoftonline.com/.
+  - Disable fast-redirects for idp.springer.com/.
+
+- Privoxy-Regression-Test:
+  - Remove duplicated word in a comment.
+
+- Documentation:
+  - contacting: Remove obsolete reference to announce.sgml.
+  - contacting: Request that the browser cache is cleared before
+    producing a log file for submission.
+  - Sponsor FAQ: Note that Privoxy users may follow sponsor links
+    without Referer header set.
+  - newfeatures: Clarify that https inspection also allows to
+    filter https responses.
+  - developer-manual: Mention that announce.txt should be updated
+    when doing a release.
+
+*** Version 3.0.32 stable ***
+
+- Security/Reliability:
+  - ssplit(): Remove an assertion that could be triggered with a
+    crafted CGI request.
+    Commit 2256d7b4d67. OVE-20210203-0001. CVE-2021-20272.
+    Reported by: Joshua Rogers (Opera)
+  - cgi_send_banner(): Overrule invalid image types. Prevents a
+    crash with a crafted CGI request if Privoxy is toggled off.
+    Commit e711c505c48. OVE-20210206-0001. CVE-2021-20273.
+    Reported by: Joshua Rogers (Opera)
+  - socks5_connect(): Don't try to send credentials when none are
+    configured. Fixes a crash due to a NULL-pointer dereference
+    when the socks server misbehaves.
+    Commit 85817cc55b9. OVE-20210207-0001. CVE-2021-20274.
+    Reported by: Joshua Rogers (Opera)
+  - chunked_body_is_complete(): Prevent an invalid read of size two.
+    Commit a912ba7bc9c. OVE-20210205-0001. CVE-2021-20275.
+    Reported by: Joshua Rogers (Opera)
+  - Obsolete pcre: Prevent invalid memory accesses with an invalid
+    pattern passed to pcre_compile(). Note that the obsolete pcre code
+    is scheduled to be removed before the 3.0.33 release. There has been
+    a warning since 2008 already.
+    Commit 28512e5b624. OVE-20210222-0001. CVE-2021-20276.
+    Reported by: Joshua Rogers (Opera)
+
+- Bug fixes:
+  - Properly parse the client-tag-lifetime directive. Previously it was
+    not accepted as an obsolete hash value was being used.
+    Reported by: Joshua Rogers (Opera)
+  - decompress_iob(): Prevent reading of uninitialized data.
+    Reported by: Joshua Rogers (Opera).
+  - decompress_iob(): Don't advance cur past eod when looking
+    for the end of the file name and comment.
+  - decompress_iob(): Cast value to unsigned char before shifting.
+    Prevents a left-shift of a negative value which is undefined behaviour.
+    Reported by: Joshua Rogers (Opera)
+  - gif_deanimate(): Confirm that that we have enough data before doing
+    any work. Fixes a crash when fuzzing with an empty document.
+    Reported by: Joshua Rogers (Opera).
+  - buf_copy(): Fail if there's no data to write or nothing to do.
+    Prevents undefined behaviour "applying zero offset to null pointer".
+    Reported by: Joshua Rogers (Opera)
+  - log_error(): Treat LOG_LEVEL_FATAL as fatal even when --stfu is
+    being used while fuzzing.
+    Reported by: Joshua Rogers (Opera).
+  - Respect DESTDIR when considering whether or not to install
+    config files with ".new" extension.
+  - OpenSSL ssl_store_cert(): Fix two error messages.
+  - Fix a couple of format specifiers.
+  - Silence compiler warnings when compiling with NDEBUG.
+  - fuzz_server_header(): Fix compiler warning.
+  - fuzz_client_header(): Fix compiler warning.
+  - cgi_send_user_manual(): Also reject requests if the user-manual
+    directive specifies a https:// URL. Previously Privoxy would try and
+    fail to open a local file.
+
+- General improvements:
+  - Log the TLS version and the the cipher when debug 2 is enabled.
+  - ssl_send_certificate_error(): Respect HEAD requests by not sending a body.
+  - ssl_send_certificate_error(): End the body with a single new line.
+  - serve(): Increase the chances that the host is logged when closing
+    a server socket.
+  - handle_established_connection(): Add parentheses to clarify an expression
+    Suggested by: David Binderman
+  - continue_https_chat(): Explicitly unset CSP_FLAG_CLIENT_CONNECTION_KEEP_ALIVE
+    if process_encrypted_request() fails. This makes it more obvious that the
+    connection will not be reused. Previously serve() relied on
+    CSP_FLAG_SERVER_CONTENT_LENGTH_SET and CSP_FLAG_CHUNKED being unset.
+    Inspired by a patch from Joshua Rogers (Opera).
+  - decompress_iob(): Add periods to a couple of log messages
+  - Terminate the body of the HTTP snipplets with a single new line
+    instead of "\r\n".
+  - configure: Add --with-assertions option and only enable assertions
+    when it is used
+  - windows build: Use --with-brotli and --with-mbedtls by default and
+    enable dynamic error checking.
+  - gif_deanimate(): Confirm we've got an image before trying to write it
+    Saves a pointless buf_copy() call.
+  - OpenSSL ssl_store_cert(): Remove a superfluous space before the serial number.
+
+- Action file improvements:
+  - Disable fast-redirects for .golem.de/
+  - Unblock requests to adri*.
+  - Block requests for trc*.taboola.com/
+  - Disable fast-redirects for .linkedin.com/
+
+- Filter file improvements:
+  - Make the second pcrs job of the img-reorder filter greedy again.
+    The ungreedy version broke the img tags on:
+    https://bulk.fefe.de/scalability/.
+
+- Privoxy-Log-Parser:
+  - Highlight a few more messages.
+  - Clarify the --statistics output. The shown "Reused connections"
+    are server connections so name them appropriately.
+  - Bump version to 0.9.3.
+
+- Privoxy-Regression-Test:
+  - Add the --check-bad-ssl option to the --help output.
+  - Bump version to 0.7.3.
+
+- Documentation:
+  - Add pushing the created tag to the release steps in the developer manual.
+  - Clarify that 'debug 32768' should be used in addition to the other debug
+    directives when reporting problems.
+  - Add a 'Third-party licenses and copyrights' section to the user manual.
+
 *** Version 3.0.31 stable ***
 
 - Security/Reliability:
   - Prevent an assertion from getting triggered by a crafted CGI request.
-    Commit 5bba5b89193fa. OVE-20210130-0001.
+    Commit 5bba5b89193fa. OVE-20210130-0001. CVE-2021-20217.
     Reported by: Joshua Rogers (Opera)
   - Fixed a memory leak when decompression fails "unexpectedly".
-    Commit f431d61740cc0. OVE-20210128-0001.
+    Commit f431d61740cc0. OVE-20210128-0001. CVE-2021-20216.
 
 - Bug fixes:
   - Fixed detection of insufficient data for decompression.