FAQ: Explicitly mention that sponsors can get a proper invoice
[privoxy.git] / doc / source / changelog.sgml
1 <!--
2  File        :  doc/source/changelog.sgml
3
4  Purpose     :  Entity included in other project documents.
5
6  Copyright (C) 2013-2021 Privoxy Developers https://www.privoxy.org/
7  See LICENSE.
8
9  ======================================================================
10   This file used for inclusion with other documents only.
11  ======================================================================
12
13  If you make changes to this file, please verify the finished
14  docs all display as intended.
15
16  This file is included into:
17
18   user-manual
19 -->
20
21
22 <!--
23  The SGML ChangeLog can be generated with: utils/changelog2doc.pl ChangeLog
24 -->
25
26 <para>
27   <application>Privoxy 3.0.32</application> fixes multiple DoS issues
28   and a couple of other bugs. The issues also affect earlier Privoxy
29   releases.
30 </para>
31  <para>
32   Changes in <application>Privoxy 3.0.32</application> stable:
33  </para>
34  <para>
35  <itemizedlist>
36   <listitem>
37    <para>
38     Security/Reliability:
39     <itemizedlist>
40     <listitem>
41      <para>
42       ssplit(): Remove an assertion that could be triggered with a
43       crafted CGI request.
44       Commit 2256d7b4d67. OVE-20210203-0001.
45       Reported by: Joshua Rogers (Opera)
46      </para>
47     </listitem>
48     <listitem>
49      <para>
50       cgi_send_banner(): Overrule invalid image types. Prevents a
51       crash with a crafted CGI request if Privoxy is toggled off.
52       Commit e711c505c48. OVE-20210206-0001.
53       Reported by: Joshua Rogers (Opera)
54      </para>
55     </listitem>
56     <listitem>
57      <para>
58       socks5_connect(): Don't try to send credentials when none are
59       configured. Fixes a crash due to a NULL-pointer dereference
60       when the socks server misbehaves.
61       Commit 85817cc55b9. OVE-20210207-0001.
62       Reported by: Joshua Rogers (Opera)
63      </para>
64     </listitem>
65     <listitem>
66      <para>
67       chunked_body_is_complete(): Prevent an invalid read of size two.
68       Commit a912ba7bc9c. OVE-20210205-0001.
69       Reported by: Joshua Rogers (Opera)
70      </para>
71     </listitem>
72     <listitem>
73      <para>
74       Obsolete pcre: Prevent invalid memory accesses with an invalid
75       pattern passed to pcre_compile(). Note that the obsolete pcre code
76       is scheduled to be removed before the 3.0.33 release. There has been
77       a warning since 2008 already.
78       Commit 28512e5b624. OVE-20210222-0001.
79       Reported by: Joshua Rogers (Opera)
80      </para>
81      </listitem>
82     </itemizedlist>
83    </para>
84   </listitem>
85   <listitem>
86    <para>
87     Bug fixes:
88     <itemizedlist>
89     <listitem>
90      <para>
91       Properly parse the client-tag-lifetime directive. Previously it was
92       not accepted as an obsolete hash value was being used.
93       Reported by: Joshua Rogers (Opera)
94      </para>
95     </listitem>
96     <listitem>
97      <para>
98       decompress_iob(): Prevent reading of uninitialized data.
99       Reported by: Joshua Rogers (Opera).
100      </para>
101     </listitem>
102     <listitem>
103      <para>
104       decompress_iob(): Don't advance cur past eod when looking
105       for the end of the file name and comment.
106      </para>
107     </listitem>
108     <listitem>
109      <para>
110       decompress_iob(): Cast value to unsigned char before shifting.
111       Prevents a left-shift of a negative value which is undefined behaviour.
112       Reported by: Joshua Rogers (Opera)
113      </para>
114     </listitem>
115     <listitem>
116      <para>
117       gif_deanimate(): Confirm that that we have enough data before doing
118       any work. Fixes a crash when fuzzing with an empty document.
119       Reported by: Joshua Rogers (Opera).
120      </para>
121     </listitem>
122     <listitem>
123      <para>
124       buf_copy(): Fail if there's no data to write or nothing to do.
125       Prevents undefined behaviour "applying zero offset to null pointer".
126       Reported by: Joshua Rogers (Opera)
127      </para>
128     </listitem>
129     <listitem>
130      <para>
131       log_error(): Treat LOG_LEVEL_FATAL as fatal even when --stfu is
132       being used while fuzzing.
133       Reported by: Joshua Rogers (Opera).
134      </para>
135     </listitem>
136     <listitem>
137      <para>
138       Respect DESTDIR when considering whether or not to install
139       config files with ".new" extension.
140      </para>
141     </listitem>
142     <listitem>
143      <para>
144       OpenSSL ssl_store_cert(): Fix two error messages.
145      </para>
146     </listitem>
147     <listitem>
148      <para>
149       Fix a couple of format specifiers.
150      </para>
151     </listitem>
152     <listitem>
153      <para>
154       Silence compiler warnings when compiling with NDEBUG.
155      </para>
156     </listitem>
157     <listitem>
158      <para>
159       fuzz_server_header(): Fix compiler warning.
160      </para>
161     </listitem>
162     <listitem>
163      <para>
164       fuzz_client_header(): Fix compiler warning.
165      </para>
166     </listitem>
167     <listitem>
168      <para>
169       cgi_send_user_manual(): Also reject requests if the user-manual
170       directive specifies a https:// URL. Previously Privoxy would try and
171       fail to open a local file.
172      </para>
173      </listitem>
174     </itemizedlist>
175    </para>
176   </listitem>
177   <listitem>
178    <para>
179     General improvements:
180     <itemizedlist>
181     <listitem>
182      <para>
183       Log the TLS version and the the cipher when debug 2 is enabled.
184      </para>
185     </listitem>
186     <listitem>
187      <para>
188       ssl_send_certificate_error(): Respect HEAD requests by not sending a body.
189      </para>
190     </listitem>
191     <listitem>
192      <para>
193       ssl_send_certificate_error(): End the body with a single new line.
194      </para>
195     </listitem>
196     <listitem>
197      <para>
198       serve(): Increase the chances that the host is logged when closing
199       a server socket.
200      </para>
201     </listitem>
202     <listitem>
203      <para>
204       handle_established_connection(): Add parentheses to clarify an expression
205       Suggested by: David Binderman
206      </para>
207     </listitem>
208     <listitem>
209      <para>
210       continue_https_chat(): Explicitly unset CSP_FLAG_CLIENT_CONNECTION_KEEP_ALIVE
211       if process_encrypted_request() fails. This makes it more obvious that the
212       connection will not be reused. Previously serve() relied on
213       CSP_FLAG_SERVER_CONTENT_LENGTH_SET and CSP_FLAG_CHUNKED being unset.
214       Inspired by a patch from Joshua Rogers (Opera).
215      </para>
216     </listitem>
217     <listitem>
218      <para>
219       decompress_iob(): Add periods to a couple of log messages
220      </para>
221     </listitem>
222     <listitem>
223      <para>
224       Terminate the body of the HTTP snipplets with a single new line
225       instead of "\r\n".
226      </para>
227     </listitem>
228     <listitem>
229      <para>
230       configure: Add --with-assertions option and only enable assertions
231       when it is used
232      </para>
233     </listitem>
234     <listitem>
235      <para>
236       windows build: Use --with-brotli and --with-mbedtls by default and
237       enable dynamic error checking.
238      </para>
239     </listitem>
240     <listitem>
241      <para>
242       gif_deanimate(): Confirm we've got an image before trying to write it
243       Saves a pointless buf_copy() call.
244      </para>
245     </listitem>
246     <listitem>
247      <para>
248       OpenSSL ssl_store_cert(): Remove a superfluous space before the serial number.
249      </para>
250      </listitem>
251     </itemizedlist>
252    </para>
253   </listitem>
254   <listitem>
255    <para>
256     Action file improvements:
257     <itemizedlist>
258     <listitem>
259      <para>
260       Disable fast-redirects for .golem.de/
261      </para>
262     </listitem>
263     <listitem>
264      <para>
265       Unblock requests to adri*.
266      </para>
267     </listitem>
268     <listitem>
269      <para>
270       Block requests for trc*.taboola.com/
271      </para>
272     </listitem>
273     <listitem>
274      <para>
275       Disable fast-redirects for .linkedin.com/
276      </para>
277      </listitem>
278     </itemizedlist>
279    </para>
280   </listitem>
281   <listitem>
282    <para>
283     Filter file improvements:
284     <itemizedlist>
285     <listitem>
286      <para>
287       Make the second pcrs job of the img-reorder filter greedy again.
288       The ungreedy version broke the img tags on:
289       https://bulk.fefe.de/scalability/.
290      </para>
291     </listitem>
292     </itemizedlist>
293    </para>
294   </listitem>
295   <listitem>
296    <para>
297     Privoxy-Log-Parser:
298     <itemizedlist>
299     <listitem>
300      <para>
301       Highlight a few more messages.
302      </para>
303     </listitem>
304     <listitem>
305      <para>
306       Clarify the --statistics output. The shown "Reused connections"
307       are server connections so name them appropriately.
308      </para>
309     </listitem>
310     <listitem>
311      <para>
312       Bump version to 0.9.3.
313      </para>
314      </listitem>
315     </itemizedlist>
316    </para>
317   </listitem>
318   <listitem>
319    <para>
320     Privoxy-Regression-Test:
321     <itemizedlist>
322     <listitem>
323      <para>
324       Add the --check-bad-ssl option to the --help output.
325      </para>
326     </listitem>
327     <listitem>
328      <para>
329       Bump version to 0.7.3.
330      </para>
331      </listitem>
332     </itemizedlist>
333    </para>
334   </listitem>
335   <listitem>
336    <para>
337     Documentation:
338     <itemizedlist>
339     <listitem>
340      <para>
341       Add pushing the created tag to the release steps in the developer manual.
342      </para>
343     </listitem>
344     <listitem>
345      <para>
346       Clarify that 'debug 32768' should be used in addition to the other debug
347       directives when reporting problems.
348      </para>
349      </listitem>
350     <listitem>
351      <para>
352       Add a 'Third-party licenses and copyrights' section to the user manual.
353      </para>
354     </listitem>
355     </itemizedlist>
356    </para>
357   </listitem>
358  </itemizedlist>
359 </para>