[rrd-developers] [PATCH] rrdcached correct sizes for [v]snprintf, strncpy
Tobias Oetiker
tobi at oetiker.ch
Fri Mar 6 06:30:20 CET 2009
Hi Kevin,
thanks its in
cheers
tobi
Wednesday kevin brintnall wrote:
> Make sure we use correct sizes for vsnprintf (sizeof) and strncpy (sizeof-1).
>
> ---
> --- a/src/rrd_daemon.c
> +++ b/src/rrd_daemon.c
> @@ -466,7 +466,7 @@ static int add_response_info(listen_socket_t *sock, char *fmt, ...) /* {{{ */
>
> va_start(argp, fmt);
> #ifdef HAVE_VSNPRINTF
> - len = vsnprintf(buffer, sizeof(buffer)-1, fmt, argp);
> + len = vsnprintf(buffer, sizeof(buffer), fmt, argp);
> #else
> len = vsprintf(buffer, fmt, argp);
> #endif
> @@ -524,7 +524,7 @@ static int send_response (listen_socket_t *sock, response_code rc,
> rclen = sprintf(buffer, "%d ", lines);
> va_start(argp, fmt);
> #ifdef HAVE_VSNPRINTF
> - len = vsnprintf(buffer+rclen, sizeof(buffer)-rclen-1, fmt, argp);
> + len = vsnprintf(buffer+rclen, sizeof(buffer)-rclen, fmt, argp);
> #else
> len = vsprintf(buffer+rclen, fmt, argp);
> #endif
> @@ -2159,7 +2159,7 @@ static int open_listen_socket_network(const listen_socket_t *sock) /* {{{ */
> char *port;
> int status;
>
> - strncpy (addr_copy, sock->addr, sizeof (addr_copy));
> + strncpy (addr_copy, sock->addr, sizeof(addr_copy)-1);
> addr_copy[sizeof (addr_copy) - 1] = 0;
> addr = addr_copy;
>
> @@ -2451,7 +2451,7 @@ static int daemonize (void) /* {{{ */
> {
> listen_socket_t sock;
> memset(&sock, 0, sizeof(sock));
> - strncpy(sock.addr, RRDCACHED_DEFAULT_ADDRESS, sizeof(sock.addr));
> + strncpy(sock.addr, RRDCACHED_DEFAULT_ADDRESS, sizeof(sock.addr)-1);
> open_listen_socket (&sock);
> }
>
>
> _______________________________________________
> rrd-developers mailing list
> rrd-developers at lists.oetiker.ch
> https://lists.oetiker.ch/cgi-bin/listinfo/rrd-developers
>
>
--
Tobi Oetiker, OETIKER+PARTNER AG, Aarweg 15 CH-4600 Olten, Switzerland
http://it.oetiker.ch tobi at oetiker.ch ++41 62 775 9902 / sb: -9900
More information about the rrd-developers
mailing list