CHANGES revision 1.49
1$NetBSD: CHANGES,v 1.49 2021/05/05 07:41:48 mrg Exp $
2
3changes in bozohttpd 20210504:
4	o  don't assume host BUFSIZ is sufficent.  small BUFSIZ leads to
5	   always happens errors in the testsuite.  switch all these buffers
6	   to be 4KiB sized.  reported by embr <git@liclac.eu>
7
8changes in bozohttpd 20210403:
9	o  fix a denial of service attack against initial request contents,
10           now bounded at 16KiB.  reported by Justin Parrott in PR#56085
11
12changes in bozohttpd 20210227:
13	o  new support for content types: .tar.bz2, .tar.xz, .tar.lz,
14	   .tar.zst, .tbz2, .txz, .tlz, .zipx, .xz, .zst, .sz, .lz, .lzma,
15	   .lzo, .7z, .lzo, .cab, .dmg, .jar, and .rar.  should fix
16	   netbsd PR#56026:
17	   MIME type of .tar.xz file on ny{cdn,ftp}.NetBSD.org is invalid
18
19changes in bozohttpd 20210211:
20	o  fix various NULL derefs from malformed headers.  mostly from
21	   <emily@ingalls.rocks>.
22	o  fix memory leaks in library interface: add bozo_cleanup().
23
24changes in bozohttpd 20201014:
25	o  also set -D_GNU_SOURCE in Makefile.boot.  from
26	   hadrien.lacour@posteo.net.
27	o  fix array size botch (assertion, not exploitable.)  from
28	   martin@netbsd.org.
29	o  also match %2F as well as %2f.  from leah@vuxu.org.
30	o  many manual and help fixes.  clean ups for higher lint levels,
31	   consistency/style clean ups.  various option fixes including made
32	   -f imply -b.  from <henrik@gulbra.net> for freebsd.
33
34changes in bozohttpd 20200912:
35	o  add .m4a and .m4v file extensions.
36
37changes in bozohttpd 20200820:
38	o  make this work on sun2 by reducing mmap window there.
39	o  fix SSL shutdown sequence.  from spz@netbsd.org.
40	o  add readme support to directory indexing.  from jmcneill@netbsd.org
41	o  add blocklist(8) support.  from jruoho@netbsd.org.
42
43changes in bozohttpd 20190228:
44	o  extend timeout facility to ssl and stop servers hanging forever
45	   if the client never sends anything.  reported by Steffen in netbsd
46	   PR#50655.
47	o  don't display special files in the directory index.  they aren't
48	   served, but links to them are generated.
49	o  fix CGI '+' parameter handling, some error checking, and a double
50	   free.  from rajeev_v_pillai@yahoo.com
51	o  more directory indexing clean up.  from rajeev_v_pillai@yahoo.com
52
53changes in bozohttpd 20181215:
54	o  fix .htpasswd bypass for authenticated users.  reported by JP,
55	   from leot@netbsd.org
56	o  avoid possible null dereference when receiving a big request that
57	   timeout.  reported by maya@netbsd.org, from leot@netbsd.org
58	o  fix handling of -T option, from leot@netbsd.org
59	o  cleanups and portability improvements, from maya@netbsd.org
60	o  change directory indexing to use html tables, from
61	   rajeev_v_pillai@yahoo.com
62
63changes in bozohttpd 20181125:
64	o  fixes for option parsing introduced in bozohttpd 20181123
65
66changes in bozohttpd 20181121:
67	o  add url remap support via .bzremap file, from martin@netbsd.org
68	o  handle redirections for any protocol, not just http:
69	o  fix a denial of service attack against header contents, which
70	   is now bounded at 16KiB.  reported by JP
71	o  reduce default timeouts, and add expand timeouts to handle the
72	   initial line, each header, and the total time spent
73	o  add -T option to expose new timeout settings
74	o  minor RFC fixes related to timeout handling
75	o  fix special file (.htpasswd, .bz*) bypass.  reported by JP
76
77changes in bozohttpd 20170201:
78	o  fix an infinite loop in cgi processing
79	o  fixes and clean up for the testsuite
80	o  no longer sends encoding header for compressed formats
81
82changes in bozohttpd 20160517:
83	o  add a bozo_get_version() function which returns the version number
84
85changes in bozohttpd 20160415:
86	o  add search-word support for CGI
87	o  fix a security issue in CGI suffix handler support which would
88	   allow remote code execution, from shm@netbsd.org
89	o  -C option supports now CGI scripts only
90
91changes in bozohttpd 20151028:
92	o  add CGI support for ~user translation (-E switch)
93	o  add redirects to ~user translation
94	o  fix bugs around ~user translation
95	o  add schema detection for absolute redirects
96	o  fixed few memory leaks
97	o  bunch of minor tweaks
98	o  removed -r support
99	o  smarter redirects 
100
101changes in bozohttpd 20150320:
102	o  fix redirection handling
103	o  support transport stream (.ts) and video object (.vob) files
104	o  directory listings show correct file sizes for large files
105
106changes in bozohttpd 20140717:
107	o  properly handle SSL errors
108
109changes in bozohttpd 20140708:
110	o  fixes for virtual host support, from rajeev_v_pillai@yahoo.com
111	o  avoid printing double errors, from shm@netbsd.org
112	o  fix a security issue in basic HTTP authentication which would allow
113	   authentication to be bypassed, from shm@netbsd.org
114
115changes in bozohttpd 20140201:
116	o  support .svg files
117	o  fix a core dump when requests timeout
118
119changes in bozohttpd 20140102:
120	o  update a few content types
121	o  add support for directly calling lua scripts to handle
122	   processes, from mbalmer@netbsd.org
123	o  properly escape generated HTML
124	o  add authentication for redirections, from martin@netbsd.org
125	o  handle chained ssl certifications, from elric@netbsd.org
126	o  add basic support for gzipped files, from elric@netbsd.org
127	o  properly escape generated URIs
128
129changes in bozohttpd 20111118:
130	o  add -P <pidfile> option, from jmmv@netbsd.org
131	o  avoid crashes with http basic auth, from pooka@netbsd.org
132	o  add support for REDIRECT_STATUS variable, from tls@netbsd.org
133	o  support .mp4 files in the default map
134	o  directory indexes with files with : are now displayed properly, from
135	   reed@netbsd.org
136	o  allow -I option to be useful in non-inetd mode as well
137
138changes in bozohttpd 20100920:
139	o  properly fully disable multi-file mode for now
140	o  fix the -t and -U options when used without the -e option, broken since
141	   the library-ifcation
142	o  be explicit that logs go to the FTP facility in syslog
143	o  use scandir() with alphasort() for sorted directory lists, from moof
144	o  fix a serious error in vhost handling; "Host:.." would allow access to
145	   the next level directory from the virtual root directory, from seanb
146	o  fix some various non standard compile time errors, from rudolf
147	o  fix dynamic CGI content maps, from rudolf
148
149changes in bozohttpd 20100617:
150	o  fix some compile issues
151	o  fix SSL mode.  from rtr
152	o  fix some cgi-bin issues, as seen with cvsweb
153	o  disable multi-file daemon mode for now, it breaks
154	o  return 404's instead of 403's when chdir of ~user dirs fail
155	o  remove "noreturn" attribute from bozo_http_error() that was
156	   causing incorrect runtime behaviour
157
158changes in bozohttpd 20100509:
159	o  major rework and clean up of internal interfaces.  move the main
160	   program into main.c, the remaining parts are useable as library
161	   add bindings for lua.  by Alistair G. Crooks <agc@netbsd.org>
162	o  fix http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=566325
163
164changes in bozohttpd 20090522:
165	o  avoid dying in daemon mode for some uncommon, but recoverable, errors
166	o  close leaking file descriptors for CGI and daemon mode
167	o  handle poll errors properly
168	o  don't try to handle more than one request per process yet
169	o  add subdirs for build "debug" and "small" versions
170	o  clean up a bad merge / duplicate code
171	o  make mmap() usage portable, fixes linux & ranges: support
172	o  document the -f option
173	o  daemon mode now serves 6 files per child
174
175changes in bozohttpd 20090417:
176	o  make bozohttpd internally more modular, preparing the way
177	   to handle more than one request per process
178	o  fix http-auth, set $REMOTE_USER not $REMOTEUSER.  also fix
179	   cgi-bin with cvsweb, from Holger Weiss <holger@CIS.FU-Berlin.DE>
180	o  fix an uninitialised variable use in daemon mode
181	o  fix ssl mode with newer OpenSSL
182	o  mmap large files in manageable sizes so we can serve any size file
183	o  refactor url processing to handle query strings correctly for CGI
184	   from Sergey Katsev at Coyote Point
185	o  add If-Modified-Since support, from Joerg Sonnenberger
186	   <joerg@netbsd.org>
187	o  many more manual fixes, from NetBSD
188
189changes in bozohttpd 20080303:
190	o  fix some cgi header processing, from <thelsdj@gmail.com>
191	o  add simple Range: header processing, from <bad@bsd.de>
192	o  man page fixes, from NetBSD
193	o  clean up various parts, from NetBSD
194
195changes in bozohttpd 20060710:
196	o  prefix some function names with "bozo"
197	o  align directory indexing <hr> markers
198	o  clean up some code GCC4 grumbled about
199
200changes in bozohttpd 20060517:
201	o  don't allow "/.." or "../" files
202	o  don't write ":80" into urls for the http port
203	o  fix a fd leak when fork() fails
204	o  make directory indexing mode not look so ugly
205	o  build a text version of the manual page
206	o  make "make clean" work properly
207
208changes in bozohttpd 20050410:
209	o  fix some off-by-one errors from <roland.illig@gmx.de>
210	o  properly support nph- CGI
211	o  make content maps case insensitive
212	o  fix proto header merging to include the missing comma
213	o  major source reorganisation; most features are in separate files now
214	o  new -V flag that makes unknown virtualhosts use slashdir
215	   from <rumble@ephemeral.org>
216	o  HTTP/1.x protocol headers are now properly merged for CGI
217
218changes in bozohttpd 20040808:
219	o  CGI status is now properly handled (-a flag has been removed)
220	o  CGI file upload support works
221	o  %xy translations are no longer ever applied after the first '?',
222	   ala RFC2396.  from lukem
223	o  daemon mode (-b) should no longer hang spinning forever if it
224	   sees no children.  from lukem
225	o  new .bzabsredirect file support. from <martin@netbsd.org>
226	o  return a 404 error if we see %00 or %2f (/)
227	o  don't print 2 "200" headers for CGI
228	o  support .torrent files
229
230changes in bozohttpd 20040218:
231	o  new .bzredirect file support for sane directory redirection
232	o  new -Z option that enables SSL mode, from <rtr@eterna.com.au>
233	o  the -C option has been changed to take two explicit options, rather
234	   than a single option with a space separating the suffix and the
235	   interpreter.  ``-C ".foo /path/to/bar"'' should now be written
236	   as ``-C .foo /path/to/bar''
237	o  the -M option has been changed like -C and no longer requires or
238	   supports a single argument with space-separated options
239	o  with -a, still print the 200 OK.  from <rtr@eterna.com.au>
240	o  with -r, if a .bzdirect file appears in a directory, allow direct
241	   access to this directory
242
243changes in bozohttpd 20031005:
244	o  fixes for basic authorisation.  from <ecu@ipv42.net>
245	o  always display file size in directory index mode
246	o  add .xbel, .xml & .xsl -> text/xml mappings.  from
247	   <wiz@danbala.ifoer.tuwien.ac.at>
248
249changes in bozohttpd 20030626:
250	o  fix a recent core dump when given no input
251	o  add new -r flag that ensures referrer is set to this host
252	o  fix several compile time errors with -DNO_CGIBIN_SUPPORT
253	o  fix some man page details. from lukem@wasabisystems.com
254	o  re-add a missing memset(), fixing a core dump. from lukem
255	o  support HTTP basic authorisation, disabled by default.  from lukem
256	o  print the port number in redirects and errors. from lukem
257	o  only syslog the basename of the program. from lukem
258	o  add __attribute__() format checking. from lukem
259	o  fix cgibin SCRIPT_NAME to have a leading /.  from zakj@nox.cx
260	o  simplify some code in -C to avoid a core dump.  from lukem
261	o  add a .css -> css/text entry to the content_map[].  from zakj@nox.cx
262
263changes in bozohttpd 20030409:
264	o  -d without DEBUG enabled only prints one warning and continues
265	o  one can now define the C macro SERVER_SOFTWARE when building to
266	   change the Server: header and CGI variable of the same name
267	o  add new -s flag the force logging output to stderr. from zakj@nox.cx
268	o  add new -a flag for CGI bin that stops bozohttpd from outputting
269	   any HTTP reply, the CGI program must output these.  from zakj@nox.cx
270	o  new REQUEST_URI and DATE_GMT environment variables for CGI.  from
271	   zakj@nox.cx
272	o  add a "Makefile.boot" that should work with any make program
273	o  build on linux again
274	o  fix core dumps when using -C
275
276changes in bozohttpd 20030313:
277	o  deprecate -r flag; make this the default and silently ignore -r now
278	o  add support for file extentions to call CGI programs (from lukem)
279	o  add dynamic support to add new content map entries, allowing both
280	   new file types and non /cgi-bin CGI programs to be run with the
281	   new -C "suffix cgihandler" and -M "suffix type encoding encoding11"
282	   options
283	o  in -b mode, set the http date after accept() returns, not before we
284	   call accept()
285	o  in -b mode, bind all addresses found not just the first one
286	o  unsupport old hostname API
287	o  in -b mode, set the SO_REUSEADDR socket option (lukem)
288	o  allow -x (index.html) mode to work with CGI handlers
289
290changes in bozohttpd 20021106:
291	o  add .bz2 support
292	o  properly escape <, > and & in error messages, partly from
293	   Nicolas Jombart <ecu@mariejeanne.net>
294	o  new -H flag to hide .* files in directory index mode
295	o  fix buffer reallocation when parsing a request, to avoid
296	   overflowing the buffer with carriage returns (\r)
297	o  do not decode "%XY"-style cgi-bin data beyond the "?"
298
299changes in bozohttpd 5.15 (20020913):
300	o  add .ogg support -> `application/x-ogg'
301	o  fix CGI requests with "/" in the query part
302
303changes in bozohttpd 5.14 (20020823):
304	o  allow -X mode to work for "/"
305	o  work on systems without MADV_SEQUENTIAL
306	o  make a local cut-down copy of "queue.h" (fixes linux & solaris
307	   support at the very least)
308	o  portability fixes for pre-ipv6 socket api systems (eg, solaris 7)
309	o  portability fixes for missing _PATH_DEFPATH, LOG_FTP and __progname
310	o  better documentation on virtual host support
311
312changes in bozohttpd 5.13 (20020804):
313	o  support .mp3 files (type audio/mpeg)
314	o  use stat() to find out if something is a directory, for -X mode
315
316changes in bozohttpd 5.12 (20020803):
317	o  constification
318	o  fixes & enhancements for directory index mode (-X)
319
320changes in bozohttpd 5.11 (20020730):
321	o  more man page fixes from Thomas Klausner
322	   <wiz@danbala.ifoer.tuwien.ac.at>
323	o  de-K&R C-ification
324	o  fix Date: header for daemon mode
325	o  fix core dump when asking for /cgi-bin/ when CGI isn't configured
326	o  use a valid Server: header
327
328changes in bozohttpd 5.10 (20020710):
329	- add freebsd support 
330	- fix a couple of header typos
331	- many cgi-bin fixes from lukem@netbsd.org
332	- add -T chrootdir and -U user, plus several minor other cleanups
333	with signals and return values.  from xs@kittenz.org
334	- add -e that does not clear the environment for -T/-U
335	- fix a formatting error noticed by ISIHARA Takanori <ishit@oak.dti.ne.jp>
336
337changes in bozohttpd 5.09 (20010922):
338	- add a daemon mode
339	- document how to use bozohttpd in netbsd inetd with more than 40 
340	connections per minute and also with cgibin
341	- man page fixes from wiz@netbsd.org
342
343changes in bozohttpd 5.08 (20010812):
344	- add directory index generation support (-X) from ad@netbsd.org
345	- add .pa as an alias for .pac
346	- make server software version configurable (RFC)
347
348changes in bozohttpd 5.07 (20010610):
349	- add .png support 
350	- new "-x index.html" flag to change default file
351	- new "-p public_html" flag to change default ~user directory
352	- fixes cgi-bin support and more from chuck@research.att.com
353	- add many new content-types, now support most common ones
354
355changes in bozohttpd 5.06 (20000825):
356	- add IPv6 support from itojun@iijlab.net
357	- man page fixes from jlam@netbsd.org
358
359changes in bozohttpd 5.05 (20000815):
360	- fix a virtual host bug, from kleink@netbsd.org
361
362changes in bozohttpd 5.04 (20000427):
363	- fix virtual host support; URI takes precedence over Host:
364
365changes in bozohttpd 5.03 (20000427):
366	- fix a bug with chdir() 
367
368changes in bozohttpd 5.02 (20000426):
369	- .pac spport from simonb
370
371changes in bozohttpd 5.01 (20000421):
372	- .swf support 
373	- virtual hosting support 
374