projects
/
collectd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote branch 'trenkel/collectd-4.9' into collectd-4.9
[collectd.git]
/
src
/
configfile.c
diff --git
a/src/configfile.c
b/src/configfile.c
index
b2997d6
..
b1cd7b8
100644
(file)
--- 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);
}
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;
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",
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);
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);
}
cf_ci_append_children (root, temp);
@@
-702,11
+700,10
@@
static oconfig_item_t *cf_read_generic (const char *path, int depth)
if (status != 0)
{
char errbuf[1024];
if (status != 0)
{
char errbuf[1024];
-
ERROR
("configfile: stat (%s) failed: %s",
+
WARNING
("configfile: stat (%s) failed: %s",
path_ptr,
sstrerror (errno, errbuf, sizeof (errbuf)));
path_ptr,
sstrerror (errno, errbuf, sizeof (errbuf)));
- oconfig_free (root);
- return (NULL);
+ continue;
}
if (S_ISREG (statbuf.st_mode))
}
if (S_ISREG (statbuf.st_mode))
@@
-715,7
+712,7
@@
static oconfig_item_t *cf_read_generic (const char *path, int depth)
temp = cf_read_dir (path_ptr, depth);
else
{
temp = cf_read_dir (path_ptr, depth);
else
{
-
ERROR
("configfile: %s is neither a file nor a "
+
WARNING
("configfile: %s is neither a file nor a "
"directory.", path);
continue;
}
"directory.", path);
continue;
}
@@
-732,6
+729,12
@@
static oconfig_item_t *cf_read_generic (const char *path, int depth)
wordfree (&we);
wordfree (&we);
+ if (root->children == NULL)
+ {
+ oconfig_free (root);
+ return (NULL);
+ }
+
return (root);
} /* oconfig_item_t *cf_read_generic */
/* #endif HAVE_WORDEXP_H */
return (root);
} /* oconfig_item_t *cf_read_generic */
/* #endif HAVE_WORDEXP_H */