On Thu, Dec 31, 2020 at 11:21:44AM +0100, Theo Buehler wrote:
> msg is allocated by vasprintf, and is leaked on return of server_sendlog.
> vasprintf calculates the length of the string, so we can zap a needless
> call to strlen while there.
>
> Index: server.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/httpd/server.c,v
> retrieving revision 1.121
> diff -u -p -r1.121 server.c
> --- server.c 11 Oct 2020 03:21:44 -0000 1.121
> +++ server.c 31 Dec 2020 10:06:28 -0000
> @@ -1251,12 +1251,14 @@ server_sendlog(struct server_config *srv
> iov[0].iov_base = &srv_conf->id;
> iov[0].iov_len = sizeof(srv_conf->id);
> iov[1].iov_base = msg;
> - iov[1].iov_len = strlen(msg) + 1;
> + iov[1].iov_len = ret + 1;
>
> if (proc_composev(httpd_env->sc_ps, PROC_LOGGER, cmd, iov, 2) != 0) {
> log_warn("%s: failed to compose imsg", __func__);
> + free(msg);
> return;
> }
> + free(msg);
> }
>
> void
>
OK claudio@
--
:wq Claudio