libcollectdclient: fix gcc warning
authorRuben Kerkhof <ruben@rubenkerkhof.com>
Fri, 14 Dec 2018 16:27:44 +0000 (17:27 +0100)
committerRuben Kerkhof <ruben@rubenkerkhof.com>
Thu, 7 Feb 2019 09:58:49 +0000 (10:58 +0100)
make[1]: Entering directory '/home/ruben/src/collectd'
  CC       src/libcollectdclient/libcollectdclient_la-network_parse.lo
In function ‘parse_string’,
    inlined from ‘parse_identifier’ at src/libcollectdclient/network_parse.c:169:7,
    inlined from ‘network_parse.constprop’ at src/libcollectdclient/network_parse.c:540:11:
src/libcollectdclient/network_parse.c:161:3: warning: ‘strncpy’ specified bound 64 equals destination size [-Wstringop-truncation]
   strncpy(out, in, out_size);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~

src/libcollectdclient/network_parse.c

index 73476fb..14e8be5 100644 (file)
@@ -158,7 +158,8 @@ static int parse_string(void *payload, size_t payload_size, char *out,
       (payload_size > out_size))
     return EINVAL;
 
       (payload_size > out_size))
     return EINVAL;
 
-  strncpy(out, in, out_size);
+  strncpy(out, in, out_size - 1);
+  out[out_size - 1] = '\0';
   return 0;
 }
 
   return 0;
 }