SMOLNET PORTAL home about changes
iAdd more DDoS prevention. - bitreich-httpd - Bitreich HTTPD service	Err	bitreich.org	70
hgit clone git://bitreich.org/bitreich-httpd git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/bitreich-httpd	URL:git://bitreich.org/bitreich-httpd git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/bitreich-httpd	bitreich.org	70
1Log	/scm/bitreich-httpd/log.gph	bitreich.org	70
1Files	/scm/bitreich-httpd/files.gph	bitreich.org	70
1Refs	/scm/bitreich-httpd/refs.gph	bitreich.org	70
1Tags	/scm/bitreich-httpd/tag	bitreich.org	70
1README	/scm/bitreich-httpd/file/README.md.gph	bitreich.org	70
1LICENSE	/scm/bitreich-httpd/file/LICENSE.gph	bitreich.org	70
i---	Err	bitreich.org	70
1commit bf9101e0e7efc8918d6122efef1339ac12b25b63	/scm/bitreich-httpd/commit/bf9101e0e7efc8918d6122efef1339ac12b25b63.gph	bitreich.org	70
1parent e5dfc5fbfe93266da5edb1bb2e903734738296cf	/scm/bitreich-httpd/commit/e5dfc5fbfe93266da5edb1bb2e903734738296cf.gph	bitreich.org	70
hAuthor: Christoph Lohmann <20h@r-36.net>	URL:mailto:20h@r-36.net	bitreich.org	70
iDate:   Tue, 22 Aug 2023 07:11:56 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
iAdd more DDoS prevention.	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M bitreich-httpd.c                    |       7 ++++---	Err	bitreich.org	70
i	Err	bitreich.org	70
i1 file changed, 4 insertions(+), 3 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/bitreich-httpd.c b/bitreich-httpd.c	/scm/bitreich-httpd/file/bitreich-httpd.c.gph	bitreich.org	70
i@@ -138,7 +138,7 @@ main(int argc, char *argv[])	Err	bitreich.org	70
i         char *wwwbase, *wwwindex, *request, *ctype, *path, *le_file,	Err	bitreich.org	70
i                 *le_base, clienth[NI_MAXHOST], clientp[NI_MAXSERV], *zuccbase,	Err	bitreich.org	70
i                 *requested, *header, *headerval, *hosthdr;	Err	bitreich.org	70
i-        int rlen;	Err	bitreich.org	70
i+        int rlen, i;	Err	bitreich.org	70
i         struct sockaddr_storage clt;	Err	bitreich.org	70
i         socklen_t cltlen = sizeof(clt);	Err	bitreich.org	70
i         time_t tim;	Err	bitreich.org	70
i@@ -170,9 +170,10 @@ main(int argc, char *argv[])	Err	bitreich.org	70
i                 request[rlen-1] = '\0';	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         /* Header parsing. */	Err	bitreich.org	70
i-        for (;;) {	Err	bitreich.org	70
i+        /* At max read 16 headers. Do not allow DDoS. */	Err	bitreich.org	70
i+        for (i = 0; i < 16; i++) {	Err	bitreich.org	70
i                 header = read_line(0, &rlen, 512);	Err	bitreich.org	70
i-                if (header == NULL)	Err	bitreich.org	70
i+                if (header == NULL || rlen == 0)	Err	bitreich.org	70
i                         break;	Err	bitreich.org	70
i                 if (header[rlen-1] == '\r') {	Err	bitreich.org	70
i                         header[rlen-1] = '\0';	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/bitreich-httpd/commit/bf9101e...
Content-Typetext/plain; charset=utf-8