-*** Version 3.0.15 beta ***
-
-- In case of missing server data, no error message is send to the
- client if the request arrived on a reused connection. The client
- is then supposed to silently retry the request without bothering
- the user. This should significantly reduce the frequency of the
- "No server or forwarder data received" error message many users
- reported.
-- More reliable detection of prematurely closed client sockets
- with keep-alive enabled.
-- FEATURE_CONNECTION_KEEP_ALIVE is decoupled from
- FEATURE_CONNECTION_SHARING and now available on
- all platforms.
-- Improved handling of POST requests on reused connections.
- Should fix problems with stalled connections after submitting
- form data with some browser configurations.
-- Fixed various latency calculation issues.
-- Allows the client to pass NTLM authentication requests to a
- forwarding proxy. This was already assumed and hinted to work
- in 3.0.13 beta but actually didn't. Now it's confirmed to work
- with IE, Firefox and Chrome.
- Thanks to Francois Botha and Wan-Teh Chang
-- Fixed a calculation problem if receiving the server headers
- takes more than two reads, that could cause Privoxy to terminate
- the connection prematurely. Reported by Oliver.
-- Compiles again on platforms such as OpenBSD and systems
- using earlier glibc version that don't support AI_ADDRCONFIG.
- Anonymously submitted in #2872591.
-- A bunch of MS VC project files and Suse and Redhat RPM spec
- files have been removed as they were no longer maintained for
- quite some time.
-- Overly long action lines are properly rejected with a proper
- error message. Previously they would be either rejected as
- invalid or cause a core dump through abort().
-- Already timed-out connections are no longer temporarily remembered.
- They weren't reused anyway, but wasted a socket slot.
-- len refers to the number of bytes actually read which might
- differ from the ones received. Adjust log messages accordingly.
-- The optional JavaScript on the CGI page uses encodeURIComponent()
- instead of escape() which doesn't encode all characters that matter.
- Anonymously reported in #2832722.
-- Fix gcc45 warnings in decompress_iob().
-- Various log message improvements.
-- Privoxy-Regression-Test supports redirect tests.
-- Privoxy-Log-Parser can gather some connection statistics.
-
-*** Version 3.0.14 beta ***
-
-- The latency is taken into account when evaluating whether or not to
- reuse a connection. This should significantly reduce the number of
- connections problems several users reported.
-- If the server doesn't specify how long the connection stays alive,
- Privoxy errs on the safe side of caution and assumes it's only a second.
-- The error pages for connection timeouts or missing server data use a
- Last-Modified date in the past. Retry attempts are detected and Privoxy
- removes the If-Modified-Since header to prevent the server from responding
- with status code 304 in which case the client would reuse the error message.
-- Setting keep-alive-timeout to 0 disables keep-alive support. Previously
- Privoxy would claim to allow persistence but not reuse the connection.
-- Pipelined requests are less likely to be mistaken for the request
- body of the previous request. Note that Privoxy still has no real
- pipeline support and will either serialize pipelined requests or
- drop them in which case the client has to resent them.
-- Fixed a crash on some Windows versions when header randomization
- is enabled and the date couldn't be parsed.
-- Privoxy's keep-alive timeout for the current connection is reduced
- to the one specified in the client's Keep-Alive header.
-- For HTTP/1.1 requests, Privoxy implies keep-alive support by not
- setting any Connection header instead of using 'Connection: keep-alive'.
-- If the socket isn't reusable, Privoxy doesn't temporarily waste
- a socket slot to remember the connection.
-- If keep-alive support is disabled but compiled in, the client's
- Keep-Alive header is removed.
-- Fixed a bug on mingw32 where downloading large files failed if
- keep-alive support was enabled.
-- Fixed a bug that (at least theoretically) could cause log
- timestamps to be occasionally off by about a second.
-- No Proxy-Connection header if added if there already is one.
-- The configure script respects the $PATH variable when searching
- for groups and id.
-
-*** Version 3.0.13 beta ***
-
-- Added IPv6 support. Thanks to Petr Pisar who not only provided
- the initial patch but also helped a lot with the integration.
-- Added client-side keep-alive support.
-- The connection sharing code is only used if the connection-sharing
- option is enabled.
-- The max-client-connections option has been added to restrict
- the number of client connections below a value enforced by
- the operating system.
-- Fixed a regression reintroduced in 3.0.12 that could cause
- crashes on mingw32 if header date randomization was enabled.
-- Compressed content with extra fields couldn't be decompressed
- and would get passed to the client unfiltered. This problem
- has only be detected through statical analysis with clang as
- nobody seems to be using extra fields anyway.
-- If the server resets the Connection after sending only the headers
- Privoxy forwards what it got to the client. Previously Privoxy
- would deliver an error message instead.
-- Error messages in case of connection timeouts use the right
- HTTP status code.
-- If spawning a child to handle a request fails, the client
- gets an error message and Privoxy continues to listen for
- new requests right away.
-- The error messages in case of server-connection timeouts or
- prematurely closed server connections are now template-based.
-- If zlib support isn't compiled in, Privoxy no longer tries to
- filter compressed content unless explicitly asked to do so.
-- In case of connections that are denied based on ACL directives,
- the memory used for the client IP is no longer leaked.
-- Fixed another small memory leak if the client request times out
- while waiting for client headers other than the request line.
-- The client socket is kept open until the server socket has
- been marked as unused. This should increase the chances that
- the still-open connection will be reused for the client's next
- request to the same destination. Note that this only matters
- if connection-sharing is enabled.
-- A TODO list has been added to the source tarballs to give potential
- volunteers a better idea of what the current goals are.
+*** Version 3.0.23 stable ***
+
+- Bug fixes:
+ - Fixed a DoS issue in case of client requests with incorrect
+ chunk-encoded body. When compiled with assertions enabled
+ (the default) they could previously cause Privoxy to abort().
+ Reported by Matthew Daley.
+ - Fixed multiple segmentation faults and memory leaks in the
+ pcrs code. This fix also increases the chances that an invalid
+ pcrs command is rejected as such. Previously some invalid commands
+ would be loaded without error. Note that Privoxy's pcrs sources
+ (action and filter files) are considered trustworthy input and
+ should not be writable by untrusted third-parties.
+ - Fixed an 'invalid read' bug which could at least theoretically
+ cause Privoxy to crash. So far, no crashes have been observed.
+ - Compiles with --disable-force again. Reported by Kay Raven.
+ - Client requests with body that can't be delivered no longer
+ cause pipelined requests behind them to be rejected as invalid.
+ Reported by Basil Hussain.
+
+- General improvements:
+ - If a pcrs command is rejected as invalid, Privoxy now logs
+ the cause of the problem as text. Previously the pcrs error
+ code was logged.
+ - The tests are less likely to cause false positives.
+
+- Action file improvements:
+ - '.sify.com/' is no longer blocked. Apparently it is not actually
+ a pure tracking site (anymore?). Reported by Andrew on ijbswa-users@.
+ - Unblock banners on .amnesty.de/ which aren't ads.
+
+- Documentation improvements:
+ - The 'Would you like to donate?' section now also contains
+ a "Paypal" address.
+ - The list of supported operating systems has been updated.
+ - The existence of the SF support and feature trackers has been
+ deemphasized because they have been broken for months.
+ Most of the time the mailing lists still work.
+ - The claim that default.action updates are sometimes released
+ on their own has been removed. It hasn't happened in years.
+ - Explicitly mention that Tor's port may deviate from the default
+ when using a bundle. Requested by Andrew on ijbswa-users@.