X-Git-Url: https://git.octo.it/?a=blobdiff_plain;ds=sidebyside;f=src%2Fconfigfile.c;h=2eea2362a5a39396eaabacef5a339202a624ad2d;hb=d48a9456e42af4ab5881ab055c95ceab71819bc1;hp=b2997d647233b3a1bf3c63994ffe7e89865e40e6;hpb=5ad3a491af300d7336112607e20b0364d1f3f2bb;p=collectd.git diff --git a/src/configfile.c b/src/configfile.c index b2997d64..2eea2362 100644 --- a/src/configfile.c +++ b/src/configfile.c @@ -575,14 +575,14 @@ static oconfig_item_t *cf_read_dir (const char *dir, int depth) ERROR ("configfile: malloc failed."); return (NULL); } - memset (root, '\0', sizeof (oconfig_item_t)); + memset (root, 0, sizeof (oconfig_item_t)); while ((de = readdir (dh)) != NULL) { char name[1024]; char **tmp; - if ((de->d_name[0] == '.') || (de->d_name[0] == '\0')) + if ((de->d_name[0] == '.') || (de->d_name[0] == 0)) continue; status = ssnprintf (name, sizeof (name), "%s/%s", @@ -624,13 +624,11 @@ static oconfig_item_t *cf_read_dir (const char *dir, int depth) char *name = filenames[i]; temp = cf_read_generic (name, depth); - if (temp == NULL) { - int j; - for (j = i; j < filenames_num; ++j) - free (filenames[j]); - free (filenames); - oconfig_free (root); - return (NULL); + if (temp == NULL) + { + /* An error should already have been reported. */ + sfree (name); + continue; } cf_ci_append_children (root, temp);