]> arthur.barton.de Git - netdata.git/blobdiff - src/plugin_nfacct.c
properly initialize the just allocated global structures
[netdata.git] / src / plugin_nfacct.c
index ace16bdf51ccf308d09b9562229c2b45896c6397..a67480a3224aa030b162f595e0e66b2ccdde090a 100644 (file)
@@ -32,10 +32,7 @@ static inline void nfacct_list_grow() {
         info("nfacct.plugin: increasing nfacct_list to size %d", size);
 
         nfacct_list = reallocz(nfacct_list, sizeof(struct nfacct_list) + (sizeof(struct mynfacct) * size));
-
-        nfacct_list->data[len].rd_bytes = NULL;
-        nfacct_list->data[len].rd_packets = NULL;
-        nfacct_list->data[len].updated = 0;
+        memset(&nfacct_list->data[len], 0, sizeof(struct mynfacct));
 
         nfacct_list->size = size;
         nfacct_list->len = len;
@@ -53,6 +50,9 @@ static int nfacct_callback(const struct nlmsghdr *nlh, void *data) {
             error("nfacct.plugin: nfacct_alloc() failed.");
             return MNL_CB_OK;
         }
+
+        if(unlikely(!nfacct_list))
+            nfacct_list_grow();
     }
 
     if(nfacct_nlmsg_parse_payload(nlh, nfacct) < 0) {