[rrd-developers] [PATCH] rrdcached correct sizes for [v]snprintf, strncpy
kevin brintnall
kbrint at rufus.net
Wed Mar 4 17:23:05 CET 2009
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);
}
More information about the rrd-developers
mailing list