Module Name:    src
Committed By:   snj
Date:           Sun Feb 12 22:07:17 UTC 2017

Modified Files:
        src/libexec/httpd [netbsd-7]: CHANGES bozohttpd.8 bozohttpd.c
            bozohttpd.h cgi-bozo.c
        src/libexec/httpd/libbozohttpd [netbsd-7]: libbozohttpd.3
        src/libexec/httpd/testsuite [netbsd-7]: Makefile html_cmp test-bigfile
            test-simple
Added Files:
        src/libexec/httpd/testsuite [netbsd-7]: t11.in t11.out
        src/libexec/httpd/testsuite/cgi-bin [netbsd-7]: empty

Log Message:
Pull up following revision(s) (requested by mrg in ticket #1357):
        libexec/httpd/CHANGES: revision 1.25
        libexec/httpd/bozohttpd.8: revisions 1.63-1.65
        libexec/httpd/bozohttpd.c: revisions 1.85, 1.86
        libexec/httpd/bozohttpd.h: revision 1.47
        libexec/httpd/cgi-bozo.c: revisions 1.36, 1.37
        libexec/httpd/libbozohttpd/libbozohttpd.3: revision 1.4
        libexec/httpd/testsuite/Makefile: revision 1.7
        libexec/httpd/testsuite/html_cmp: revision 1.5
        libexec/httpd/testsuite/test-bigfile: revision 1.4
        libexec/httpd/testsuite/test-simple: revisions 1.3, 1.4
        libexec/httpd/testsuite/t11.in: revision 1.1
        libexec/httpd/testsuite/t11.out: revision 1.1
        libexec/httpd/testsuite/cgi-bin/empty: revision 1.1
Update bozohttpd to 20170201:
- fix an infinite loop in cgi processing
- fixes and clean up for the testsuite
- no longer sends encoding header for compressed formats


To generate a diff of this commit:
cvs rdiff -u -r1.19.2.4 -r1.19.2.5 src/libexec/httpd/CHANGES
cvs rdiff -u -r1.46.4.7 -r1.46.4.8 src/libexec/httpd/bozohttpd.8
cvs rdiff -u -r1.56.2.7 -r1.56.2.8 src/libexec/httpd/bozohttpd.c
cvs rdiff -u -r1.33.2.5 -r1.33.2.6 src/libexec/httpd/bozohttpd.h
cvs rdiff -u -r1.25.2.6 -r1.25.2.7 src/libexec/httpd/cgi-bozo.c
cvs rdiff -u -r1.3 -r1.3.10.1 src/libexec/httpd/libbozohttpd/libbozohttpd.3
cvs rdiff -u -r1.4.24.2 -r1.4.24.3 src/libexec/httpd/testsuite/Makefile
cvs rdiff -u -r1.4 -r1.4.18.1 src/libexec/httpd/testsuite/html_cmp
cvs rdiff -u -r0 -r1.1.4.2 src/libexec/httpd/testsuite/t11.in \
    src/libexec/httpd/testsuite/t11.out
cvs rdiff -u -r1.1.1.1.30.2 -r1.1.1.1.30.3 \
    src/libexec/httpd/testsuite/test-bigfile
cvs rdiff -u -r1.2.4.2 -r1.2.4.3 src/libexec/httpd/testsuite/test-simple
cvs rdiff -u -r0 -r1.1.4.2 src/libexec/httpd/testsuite/cgi-bin/empty

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/libexec/httpd/CHANGES
diff -u src/libexec/httpd/CHANGES:1.19.2.4 src/libexec/httpd/CHANGES:1.19.2.5
--- src/libexec/httpd/CHANGES:1.19.2.4	Fri Dec 23 07:42:09 2016
+++ src/libexec/httpd/CHANGES	Sun Feb 12 22:07:17 2017
@@ -1,7 +1,12 @@
-$NetBSD: CHANGES,v 1.19.2.4 2016/12/23 07:42:09 snj Exp $
+$NetBSD: CHANGES,v 1.19.2.5 2017/02/12 22:07:17 snj Exp $
+
+changes in bozohttpd 20170201:
+	o  fix an infinite loop in cgi processing
+	o  fixes and clean up for the testsuite
+	o  no longer sends encoding header for compressed formats
 
 changes in bozohttpd 20160517:
-	o add a bozo_get_version() function which returns the version number
+	o  add a bozo_get_version() function which returns the version number
 
 changes in bozohttpd 20160415:
 	o  add search-word support for CGI

Index: src/libexec/httpd/bozohttpd.8
diff -u src/libexec/httpd/bozohttpd.8:1.46.4.7 src/libexec/httpd/bozohttpd.8:1.46.4.8
--- src/libexec/httpd/bozohttpd.8:1.46.4.7	Fri Dec 23 07:42:09 2016
+++ src/libexec/httpd/bozohttpd.8	Sun Feb 12 22:07:17 2017
@@ -1,8 +1,8 @@
-.\"	$NetBSD: bozohttpd.8,v 1.46.4.7 2016/12/23 07:42:09 snj Exp $
+.\"	$NetBSD: bozohttpd.8,v 1.46.4.8 2017/02/12 22:07:17 snj Exp $
 .\"
 .\"	$eterna: bozohttpd.8,v 1.101 2011/11/18 01:25:11 mrg Exp $
 .\"
-.\" Copyright (c) 1997-2016 Matthew R. Green
+.\" Copyright (c) 1997-2017 Matthew R. Green
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
@@ -26,7 +26,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd December 11, 2016
+.Dd February 1, 2017
 .Dt BOZOHTTPD 8
 .Os
 .Sh NAME
@@ -190,7 +190,7 @@ when a URL in the form
 is being accessed.
 The function is passed three tables as arguments, the server
 environment, the request headers, and the decoded query string
-plus any data that was send as application/x-www-form-urlencoded.
+plus any data that was sent as application/x-www-form-urlencoded.
 .It Fl M Ar suffix type encoding encoding11
 Adds a new entry to the table that converts file suffixes to
 content type and encoding.
@@ -384,7 +384,7 @@ user transformations (NO_USER_SUPPORT),
 directory index support (NO_DIRINDEX_SUPPORT),
 daemon mode support (NO_DAEMON_MODE),
 dynamic MIME content (NO_DYNAMIC_CONTENT),
-Lua suport (NO_LUA_SUPPORT),
+Lua support (NO_LUA_SUPPORT),
 and SSL support (NO_SSL_SUPPORT)
 by defining the listed macros when building
 .Nm .
@@ -446,7 +446,7 @@ with
 on the compiler command line.
 .Ss COMPRESSION
 .Nm
-supports a very basic form compression.
+supports a very basic form of compression.
 .Nm
 will serve the requested file postpended with
 .Dq Pa .gz
@@ -531,7 +531,7 @@ The focus has always been simplicity and
 and regular code audits.
 This manual documents
 .Nm
-version 20160720.
+version 20170201.
 .Sh AUTHORS
 .An -nosplit
 .Nm
@@ -631,6 +631,10 @@ provided some clean up for memory leaks
 .Aq Mt j...@netbsd.org
 provided man page fixes
 .It
+.An Dennis Lindroos
+.Aq Mt dena...@gmail.com
+provided a cgi-bin fix
+.It
 .An Julio Merino
 .Aq Mt j...@netbsd.org
 Added the

Index: src/libexec/httpd/bozohttpd.c
diff -u src/libexec/httpd/bozohttpd.c:1.56.2.7 src/libexec/httpd/bozohttpd.c:1.56.2.8
--- src/libexec/httpd/bozohttpd.c:1.56.2.7	Fri Dec 23 07:42:09 2016
+++ src/libexec/httpd/bozohttpd.c	Sun Feb 12 22:07:17 2017
@@ -1,9 +1,9 @@
-/*	$NetBSD: bozohttpd.c,v 1.56.2.7 2016/12/23 07:42:09 snj Exp $	*/
+/*	$NetBSD: bozohttpd.c,v 1.56.2.8 2017/02/12 22:07:17 snj Exp $	*/
 
 /*	$eterna: bozohttpd.c,v 1.178 2011/11/18 09:21:15 mrg Exp $	*/
 
 /*
- * Copyright (c) 1997-2016 Matthew R. Green
+ * Copyright (c) 1997-2017 Matthew R. Green
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -109,7 +109,7 @@
 #define INDEX_HTML		"index.html"
 #endif
 #ifndef SERVER_SOFTWARE
-#define SERVER_SOFTWARE		"bozohttpd/20160720"
+#define SERVER_SOFTWARE		"bozohttpd/20170201"
 #endif
 #ifndef DIRECT_ACCESS_FILE
 #define DIRECT_ACCESS_FILE	".bzdirect"

Index: src/libexec/httpd/bozohttpd.h
diff -u src/libexec/httpd/bozohttpd.h:1.33.2.5 src/libexec/httpd/bozohttpd.h:1.33.2.6
--- src/libexec/httpd/bozohttpd.h:1.33.2.5	Fri Dec 23 07:42:09 2016
+++ src/libexec/httpd/bozohttpd.h	Sun Feb 12 22:07:17 2017
@@ -1,9 +1,9 @@
-/*	$NetBSD: bozohttpd.h,v 1.33.2.5 2016/12/23 07:42:09 snj Exp $	*/
+/*	$NetBSD: bozohttpd.h,v 1.33.2.6 2017/02/12 22:07:17 snj Exp $	*/
 
 /*	$eterna: bozohttpd.h,v 1.39 2011/11/18 09:21:15 mrg Exp $	*/
 
 /*
- * Copyright (c) 1997-2015 Matthew R. Green
+ * Copyright (c) 1997-2017 Matthew R. Green
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without

Index: src/libexec/httpd/cgi-bozo.c
diff -u src/libexec/httpd/cgi-bozo.c:1.25.2.6 src/libexec/httpd/cgi-bozo.c:1.25.2.7
--- src/libexec/httpd/cgi-bozo.c:1.25.2.6	Fri Dec 23 07:42:09 2016
+++ src/libexec/httpd/cgi-bozo.c	Sun Feb 12 22:07:17 2017
@@ -1,9 +1,9 @@
-/*	$NetBSD: cgi-bozo.c,v 1.25.2.6 2016/12/23 07:42:09 snj Exp $	*/
+/*	$NetBSD: cgi-bozo.c,v 1.25.2.7 2017/02/12 22:07:17 snj Exp $	*/
 
 /*	$eterna: cgi-bozo.c,v 1.40 2011/11/18 09:21:15 mrg Exp $	*/
 
 /*
- * Copyright (c) 1997-2015 Matthew R. Green
+ * Copyright (c) 1997-2017 Matthew R. Green
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -235,7 +235,8 @@ parse_search_string(bozo_httpreq_t *requ
 	 */
 	*args_len = 1;
 	/* count '+' in str */
-	for (s = str; (s = strchr(s, '+')); (*args_len)++);
+	for (s = str; (s = strchr(s, '+')); (*args_len)++)
+		s++;
 	
 	args = bozomalloc(httpd, sizeof(*args) * (*args_len + 1));
  

Index: src/libexec/httpd/libbozohttpd/libbozohttpd.3
diff -u src/libexec/httpd/libbozohttpd/libbozohttpd.3:1.3 src/libexec/httpd/libbozohttpd/libbozohttpd.3:1.3.10.1
--- src/libexec/httpd/libbozohttpd/libbozohttpd.3:1.3	Tue Mar 18 18:20:38 2014
+++ src/libexec/httpd/libbozohttpd/libbozohttpd.3	Sun Feb 12 22:07:17 2017
@@ -1,4 +1,4 @@
-.\" $NetBSD: libbozohttpd.3,v 1.3 2014/03/18 18:20:38 riastradh Exp $
+.\" $NetBSD: libbozohttpd.3,v 1.3.10.1 2017/02/12 22:07:17 snj Exp $
 .\"
 .\" $eterna: libbozohttpd.3,v 1.2 2010/05/10 02:48:23 mrg Exp $
 .\"
@@ -29,7 +29,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\" POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd November 5, 2009
+.Dd February 2, 2017
 .Dt LIBBOZOHTTPD 3
 .Os
 .Sh NAME
@@ -41,7 +41,7 @@
 .In bozohttpd.h
 .Ft int
 .Fo bozo_set_pref
-.Fa "bozoprefs_t *prefs" "char *name" "char *value"
+.Fa "bozohttpd_t *httpd" "bozoprefs_t *prefs" "char *name" "char *value"
 .Fc
 .Ft char *
 .Fo bozo_get_pref

Index: src/libexec/httpd/testsuite/Makefile
diff -u src/libexec/httpd/testsuite/Makefile:1.4.24.2 src/libexec/httpd/testsuite/Makefile:1.4.24.3
--- src/libexec/httpd/testsuite/Makefile:1.4.24.2	Fri Dec 23 07:42:09 2016
+++ src/libexec/httpd/testsuite/Makefile	Sun Feb 12 22:07:17 2017
@@ -1,6 +1,7 @@
 #	$eterna: Makefile,v 1.14 2009/05/22 21:51:39 mrg Exp $
 
 SIMPLETESTS=	t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
+CGITESTS=	t11
 BIGFILETESTS=	partial4000 partial8000
 
 BOZOHTTPD?=	../bozohttpd
@@ -22,11 +23,16 @@ clean:
 		rm -f tmp.$$a.out tmp.$$a.err; \
 	done
 
-check: check-simple check-bigfile
+check: check-simple check-cgi check-bigfile
 
 check-simple:
 .for a in $(SIMPLETESTS)
-	${SILENT}$(.CURDIR)/test-simple "$a" "${BOZOHTTPD}" "${DATA}" "${VERBOSE}"
+	${SILENT}$(.CURDIR)/test-simple "$a" "${BOZOHTTPD}" "${DATA}" "${.CURDIR}" "${VERBOSE}"
+.endfor
+
+check-cgi:
+.for a in $(CGITESTS)
+	${SILENT}$(.CURDIR)/test-simple "$a" "${BOZOHTTPD}" "${DATA}" "${.CURDIR}" "${VERBOSE}" -c "${.CURDIR}/cgi-bin"
 .endfor
 
 check-bigfile:

Index: src/libexec/httpd/testsuite/html_cmp
diff -u src/libexec/httpd/testsuite/html_cmp:1.4 src/libexec/httpd/testsuite/html_cmp:1.4.18.1
--- src/libexec/httpd/testsuite/html_cmp:1.4	Fri Nov 18 09:51:31 2011
+++ src/libexec/httpd/testsuite/html_cmp	Sun Feb 12 22:07:17 2017
@@ -2,12 +2,20 @@
 #
 #	$eterna: html_cmp,v 1.9 2011/11/17 22:18:02 mrg Exp $
 #
-# like cmp(1) but compares to files after making their `Date: ' headers
-# the same, to allow `now' and `then' to work properly.  it also tries
-# to find servername's that might be the local host and converts those
-# as well..
+# like cmp(1)/diff(1) but compares to files after making their
+# `Date: ' headers the same, to allow `now' and `then' to work properly.
+# it also tries to find servername's that might be the local host and
+# converts those as well..
 #
-# it must be called like `cmp file1 file1' *only*.  
+# it must be called like `html_cmp cmp|diff file1 file1' *only*.
+
+if [ "cmp" = "$1" ]; then
+	cmd="cmp -s"
+elif [ "diff" = "$1" ]; then
+	cmd="diff -u"
+else
+	exit 77
+fi
 
 h=`hostname || uname -n`
 
@@ -17,10 +25,10 @@ sedcmd="s/^Date: .*/Date: nowish/;
 	s/^Server: .*/^Server: bozotic HTTP server version 5.08/;
 	s/^Content-Length: .*/Content-Length: 223/;"
 
-sed -e "$sedcmd" < "$1" > "f1.tmp.$$"
-sed -e "$sedcmd" < "$2" > "f2.tmp.$$"
+sed -e "$sedcmd" < "$2" > "f1.tmp.$$"
+sed -e "$sedcmd" < "$3" > "f2.tmp.$$"
 
-cmp -s "f1.tmp.$$" "f2.tmp.$$"
+${cmd} "f1.tmp.$$" "f2.tmp.$$"
 rv=$?
 rm -f "f1.tmp.$$" "f2.tmp.$$"
 

Index: src/libexec/httpd/testsuite/test-bigfile
diff -u src/libexec/httpd/testsuite/test-bigfile:1.1.1.1.30.2 src/libexec/httpd/testsuite/test-bigfile:1.1.1.1.30.3
--- src/libexec/httpd/testsuite/test-bigfile:1.1.1.1.30.2	Fri Dec 23 07:42:09 2016
+++ src/libexec/httpd/testsuite/test-bigfile	Sun Feb 12 22:07:17 2017
@@ -1,5 +1,5 @@
 #! /bin/sh
-# $NetBSD: test-bigfile,v 1.1.1.1.30.2 2016/12/23 07:42:09 snj Exp $
+# $NetBSD: test-bigfile,v 1.1.1.1.30.3 2017/02/12 22:07:17 snj Exp $
 
 test="$1"	# partial4000 or partial8000
 bozohttpd="$2"
@@ -7,30 +7,35 @@ wget="$3"
 datadir="$4"
 verbose="$5"
 
+tmperr="tmp.$test.err"
+
 if [ "yes" = "$verbose" ]; then
 	echo "Running test $test"
 else
-	exec 2>tmp.$test.err
+	exec 2>"$tmperr"
 fi
 
 bozotestport=11111
 
 # copy beginning file
-cp ${datadir}/bigfile.${test} ./bigfile
+cp "${datadir}/bigfile.${test}" ./bigfile
 
 # fire up bozohttpd
-${bozohttpd} -b -b -I ${bozotestport} -n -s -f ${datadir} &
+${bozohttpd} -b -b -I ${bozotestport} -n -s -f "${datadir}" &
 bozopid=$!
 
-${wget} -c http://localhost:${bozotestport}/bigfile
+"${wget}" -c http://localhost:${bozotestport}/bigfile
 
 kill -9 $bozopid
 
-if cmp ./bigfile ${datadir}/bigfile; then
+if cmp ./bigfile "${datadir}/bigfile"; then
 	rm -f ./bigfile
 	exit 0
 else
 	rm -f ./bigfile
-	[ "yes" = "$verbose" ] || echo "Failed test $test: `cat tmp.$test.err`"
+	if [ "yes" = "$verbose" ]; then
+		echo "Failed test $test:"
+		cat "$tmperr"
+	fi
 	exit 1
 fi

Index: src/libexec/httpd/testsuite/test-simple
diff -u src/libexec/httpd/testsuite/test-simple:1.2.4.2 src/libexec/httpd/testsuite/test-simple:1.2.4.3
--- src/libexec/httpd/testsuite/test-simple:1.2.4.2	Fri Dec 23 07:42:09 2016
+++ src/libexec/httpd/testsuite/test-simple	Sun Feb 12 22:07:17 2017
@@ -1,23 +1,33 @@
 #! /bin/sh
-# $NetBSD: test-simple,v 1.2.4.2 2016/12/23 07:42:09 snj Exp $
+# $NetBSD: test-simple,v 1.2.4.3 2017/02/12 22:07:17 snj Exp $
 
-test="$1"
-bozohttpd="$2"
-datadir="$3"
-verbose="$4"
+test="$1"; shift
+bozohttpd="$1"; shift
+datadir="$1"; shift
+curdir="$1"; shift
+verbose="$1"; shift
+
+in="$curdir/$test.in"
+out="$curdir/$test.out"
+tmpout="tmp.$test.out"
+tmperr="tmp.$test.err"
 
 if [ "yes" = "$verbose" ]; then
 	echo "Running test $test"
 else
-	exec 2>tmp.$test.err
+	exec 2>"$tmperr"
 fi
 
 bozotestport=11111
 
-${bozohttpd} ${datadir} < $test.in > tmp.$test.out
-if ./html_cmp $test.out tmp.$test.out; then
+${bozohttpd} "$@" "${datadir}" < "$in" > "$tmpout"
+if "$curdir/html_cmp" cmp "$out" "$tmpout"; then
 	exit 0
 else
-	[ "yes" = "$verbose" ] || echo "Failed test $test: `cat tmp.$test.err; echo; cat $test.out`"
+	if [ "yes" = "$verbose" ]; then
+		echo "Failed test $test:"
+		cat "$tmperr"
+		$curdir/html_cmp diff "$out" "$tmpout"
+	fi
 	exit 1
 fi

Added files:

Index: src/libexec/httpd/testsuite/t11.in
diff -u /dev/null src/libexec/httpd/testsuite/t11.in:1.1.4.2
--- /dev/null	Sun Feb 12 22:07:17 2017
+++ src/libexec/httpd/testsuite/t11.in	Sun Feb 12 22:07:17 2017
@@ -0,0 +1,3 @@
+GET /cgi-bin/echo.bat?&dir+c:\\ HTTP/1.1
+Host: 
+
Index: src/libexec/httpd/testsuite/t11.out
diff -u /dev/null src/libexec/httpd/testsuite/t11.out:1.1.4.2
--- /dev/null	Sun Feb 12 22:07:17 2017
+++ src/libexec/httpd/testsuite/t11.out	Sun Feb 12 22:07:17 2017
@@ -0,0 +1 @@
+HTTP/1.1 200 OK


Reply via email to