>I recently checked the slowcgi(8) and found that it might have an issue
>when buf_pos is at the end of buffer and buf_len is zero.
>
>Am I right?
It seems that all fastcgi blocks are aligned in 8-bytes and buffer size
is 8+65535+255 = 65798 bytes which is not aligned in 8-bytes. It seems
that slowcgi has no problem with aligned data, but I think in general
slowcgi should not assume that all blocks are aligned in 8-bytes.
>Index: slowcgi.c
>===================================================================
>RCS file: /cvs/src/usr.sbin/slowcgi/slowcgi.c,v
>retrieving revision 1.50
>diff -u -p -r1.50 slowcgi.c
>--- slowcgi.c 4 Sep 2016 14:40:34 -0000 1.50
>+++ slowcgi.c 2 Jan 2017 12:52:01 -0000
>@@ -674,8 +674,8 @@ slowcgi_request(int fd, short events, vo
> /* Make space for further reads */
> if (c->buf_len > 0) {
> bcopy(c->buf + c->buf_pos, c->buf, c->buf_len);
>- c->buf_pos = 0;
> }
>+ c->buf_pos = 0;
> return;
> fail:
> cleanup_request(c);
>
>