From: Clar Fon Date: Sun, 25 Aug 2019 23:18:47 +0000 (-0400) Subject: Zero wbuf on start. X-Git-Tag: v1.8.0~62 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6d9435154ee4fe7e0bfc721321e467d3c7a7cda6;p=thirdparty%2Frrdtool-1.x.git Zero wbuf on start. It turns out that calloc isn't enough, because listen_fds is copied to the socket array on start. This zeroes these fields out when the socket is opened. --- diff --git a/src/rrd_daemon.c b/src/rrd_daemon.c index 5a7ed281..c04829fb 100644 --- a/src/rrd_daemon.c +++ b/src/rrd_daemon.c @@ -3775,6 +3775,9 @@ static int open_listen_socket_unix( return (-1); } + listen_fds[listen_fds_num].wbuf_data = NULL; + listen_fds[listen_fds_num].wbuf_size = 0; + listen_fds[listen_fds_num].wbuf_capacity = 0; listen_fds[listen_fds_num].fd = fd; listen_fds[listen_fds_num].family = PF_UNIX; listen_fds[listen_fds_num].addr = strdup(path); @@ -3930,6 +3933,9 @@ static int open_listen_socket_network( return (-1); } + listen_fds[listen_fds_num].wbuf_data = NULL; + listen_fds[listen_fds_num].wbuf_size = 0; + listen_fds[listen_fds_num].wbuf_capacity = 0; listen_fds[listen_fds_num].fd = fd; listen_fds[listen_fds_num].family = ai_ptr->ai_family; listen_fds[listen_fds_num].addr = strdup(sock->addr); @@ -4009,6 +4015,9 @@ static int open_listen_sockets_systemd( return i; } + listen_fds[listen_fds_num].wbuf_data = NULL; + listen_fds[listen_fds_num].wbuf_size = 0; + listen_fds[listen_fds_num].wbuf_capacity = 0; listen_fds[listen_fds_num].fd = sd_fd; listen_fds[listen_fds_num].family = sa.sun_family; /* Add permissions to the socket */