Commit Graph

35 Commits

Author SHA1 Message Date
christos
f7945701d6 CID 1358679: Fix memory leak.
XXX: pullup 7
2016-04-24 18:24:47 +00:00
mrg
0a7cdc80ba use %zu instead of %lu for size_t. 2016-04-15 20:00:13 +00:00
mrg
27da98ff14 updates and bozohttpd 20160415:
o  add search-word support for CGI
o  fix a security issue in CGI suffix handler support which would
   allow remote code execution, from shm@netbsd.org
o  -C option supports now CGI scripts only
2016-04-15 17:57:21 +00:00
mrg
614a8b6713 redo the fix for rev 1.26 - instead of getting a new string wrong,
just delay the free until the parent has finished using them.
also, free query as well.

fixes PR#50374.
2015-12-31 04:39:16 +00:00
mrg
c2e98309d5 - convert most asprintf() calls to bozoasprintf().
- don't call getpwuid(0) if we don't need to, or fail it it fails,
  and remove the 'username' member of bozohttpd_t since it is not
  used outside of bozo_setup().
2015-12-29 04:21:46 +00:00
mrg
881b8188de rename bozo_err/bozo_warn/bozo_asprintf to bozoerr/etc.
new rule is that function that mirror libc-style functions get no underscore.
2015-12-28 07:37:59 +00:00
mrg
cff2d95613 several clean ups:
- bozostrdup() gains a request parameter, and uses it to determine
  what sort of error handling is required
- bozo_strdup() dies
- size_arrays() reduced slightly, pushing error handling into the caller
- convert to size_t for some array indices
- bozo_set_pref() and bozo_init_prefs() gain httpd parameters
- apply a bunch of manual CSE to vastly reduce the number of times the
  string "request->hr_httpd" appears.
- CGI parse_header() takes a request not httpd now

XXX: lua glue updated to call bozo_init_prefs() with htttpd parameter,
     but i'm only guessing here.
2015-12-27 10:21:35 +00:00
shm
c4fe1fac22 * add CGI support for ~user translation (-E switch)
* add redirects to ~user translation
* fix bugs around ~user translation
* add schema detection for absolute redirects
* fixed few memory leaks
* bunch of minor tweaks
* removed -r support
* smarter redirects

OK mrg@
2015-10-28 09:20:15 +00:00
mrg
56ba1ad0cf fix content type handling to not hard code (wrong) values for length,
but just call strlen() as needed.  call this 20150501.

reported by Jan Danielsson for ".svg".
2015-05-02 11:35:48 +00:00
christos
46b8188b2d Fix deref "command" after "free(file)", from KIYOHARA Takashi 2015-04-19 19:05:19 +00:00
shm
55b8853aa5 PR/48810 use cgi handler for index files
OK mrg@ martin@
2014-06-24 07:23:59 +00:00
mrg
d1b43391bd - update CHANGES with recent changes
- update version to 20140102
- update copyrights
- use getcwd() over getwd()
- fix lean build (don't include lua)
2014-01-02 08:21:38 +00:00
mbalmer
b65f3decc3 no need to check free() arguments against NULL 2013-10-12 18:46:12 +00:00
mrg
7ec01116c2 copyright maint. 2013-07-11 07:46:37 +00:00
martin
407204a79f Redo previous (fixing a memory leak introduced), and while there rework
virtual server support - in daemonized mode mixed virtual and "main"
server usage would alter the virtual hostname depending on order of
requests.
To fix, move the effective virtual hostname into the request structure
and leave the httpd server description static.
2013-06-27 10:01:31 +00:00
mrg
41f9e94281 merge bozohttpd 20111118 2011-11-18 09:51:31 +00:00
tls
eaa351b215 When invoking a content handler specified via -C, set the REDIRECT_STATUS
CGI variable to "200".  This approximates the Apache behavior which is
required by phpcgi in PHP 5.3 (and by some compilations of older PHP
versions).

I have a revolutionary idea.  Perhaps instead of imposing bizarre
requirements on other programs in the name of "security", the PHP
developers should make their own code compile with oh, I don't know,
maybe -Wuninitialized.  That might have an effect on the security of
systems using PHP rather than on the "security" of such systems...

...excuse me, got to go now, I think my airquotes just wore out.
2010-12-14 13:27:39 +00:00
mrg
df5be5736c merge bozohttpd 20100920 2010-09-20 23:11:38 +00:00
mrg
aeb27ed42c merge bozohttpd 20100617. 2010-06-17 19:43:30 +00:00
mrg
a07e0db33b merge bozohttpd 20100510. 2010-05-10 14:44:19 +00:00
mrg
ce2063081a merge bozohttpd 20100509. 2010-05-10 03:37:45 +00:00
mrg
c6e75af28a merge bozohttpd 20090522 2009-05-23 02:26:03 +00:00
mrg
bbbdac0a6f merge bozohttpd 20090418. remove a couple of minor do-nothing local
changes that don't need to cause conflicts.
2009-04-18 21:22:03 +00:00
mrg
033876329d merge bozohttpd 20090417 2009-04-18 07:28:24 +00:00
mrg
932fbc87d9 use SIMPLEQ_FOREACH_SAFE(), to avoid a use-after-free.
picked up by coverity.
2009-03-11 06:53:25 +00:00
tls
7184d23274 More CGI handling fixes from Sergey Katsev at Coyote Point.
1) Fix an issue where because of the reordering of transform_request
   and process_cgi, the cgi-script name was being cut off
   by one character (transform_request for some reason
   cuts off the leading '/' for the file name as part of its
   processing).  As an 'easy' fix, simply re-add the '/' to the
   front of the filename, which means that we don't have to
   mess with the logic that sometimes adds +1 and sometimes doesn't.

2) Work around ridiculous bug in PHP reported by lukem in 2004,
   but stubbornly never fixed by the PHP maintainers:

   Change the SCRIPT_NAME and SCRIPT_FILENAME variables
   to contain the file name only, not the query if one exists.
   Having the query in SCRIPT_FILENAME causes php-cgi to not
   work, as per the bug information here:
   	 http://bugs.php.net/bug.php?id=28227

3) Fix a memory leak because URL wasn't being freed.
2009-02-19 22:33:39 +00:00
tls
f0f7a44ff5 From Sergey Katsev at Coyote Point: fix bugs in request transformation and
CGI handling, including bin/40355 .  There are two main changes here:

1) call process_cgi() after transform_request(), not before.  Now it is
   possible to have a default cgi handler catch a request for a path that
   was produced by transformation, e.g. by index generation -- so now the
   index can be "generated" by a CGI if that is what the user desires.

2) More clearly distinguish "file" from "query" portions of the request
   URL, so we do not feed ?-suffixed "arguments" to plain files, fail to
   match filename extensions due to ?-suffixes, etc.

   After this change, there are only two cases which use the "query"
   portion of the request (the portion after the ?):

     a) A redirect issued by HTTPD will redirect to the new file, but
	with the same query string.

     b) process_cgi() will, of course continue to use the query string.
2009-02-04 22:55:58 +00:00
mrg
ac1ceac37d pull across the fix from my master bozohttpd cvs tree for PR 38466. 2008-11-06 06:38:43 +00:00
mrg
707281a285 merge bozohttpd 20080303 2008-03-03 22:15:08 +00:00
rtr
3aa5278c3a - remove const from h_header, this pointer is occasionally free'd
- remove unused write_str var
+ move header parsing to new function separation of parsing vs processing
+ alter some variable names to avoid confusion between header value and
  header name (caused breakage with previous rev)
2007-11-04 15:20:11 +00:00
rtr
6dc1829962 + don't free strdup()'d ptr that was manipulated.
(i.e. free(): warning: modified (chunk-) pointer))
+ don't leak memory for ptr actually returned from strdup()
+ don't strdup() if we don't have to
+ don't break without free() if we did strdup()
+ as well as freeing h_value also free the header.
2007-11-04 06:07:52 +00:00
tls
18c80b6525 RCS IDs 2007-10-17 18:47:59 +00:00
tls
13d3c473b0 Fix two memory leaks noted by Coverity (CID-4694, CIT-4695) and use
SIMPLEQ_FOREACH where possible.  Patch from Arnaud Lacombe.
2007-10-17 18:43:46 +00:00
tls
1d63366b2d Get httpd ready for inclusion in build. 2007-10-16 01:31:03 +00:00
tls
60dbe74596 Import of bozohttpd for its originally intended purpose: a small (~30k)
simple run-from-inetd httpd suitable for small systems (and some large
ones).
2007-10-16 01:14:01 +00:00