Merge pull request #1646 from rubenk/cleanup-malloc-calls
[collectd.git] / src / filecount.c
index 9f6ea56..3b5038c 100644 (file)
@@ -18,7 +18,7 @@
  *
  * Authors:
  *   Alessandro Iurlano <alessandro.iurlano at gmail.com>
- *   Florian octo Forster <octo at verplant.org>
+ *   Florian octo Forster <octo at collectd.org>
  **/
 
 #include "collectd.h"
@@ -344,18 +344,18 @@ static int fc_config_add_dir (oconfig_item_t *ci)
   }
 
   /* Initialize `dir' */
-  dir = (fc_directory_conf_t *) malloc (sizeof (*dir));
+  dir = calloc (1, sizeof (*dir));
   if (dir == NULL)
   {
-    ERROR ("filecount plugin: malloc failed.");
+    ERROR ("filecount plugin: calloc failed.");
     return (-1);
   }
-  memset (dir, 0, sizeof (*dir));
 
   dir->path = strdup (ci->values[0].value.string);
   if (dir->path == NULL)
   {
     ERROR ("filecount plugin: strdup failed.");
+    sfree (dir);
     return (-1);
   }
 
@@ -478,10 +478,8 @@ static int fc_read_dir_callback (const char *dirname, const char *filename,
 
   if (S_ISDIR (statbuf.st_mode) && (dir->options & FC_RECURSIVE))
   {
-    if(dir->options & FC_HIDDEN)
-       status = walk_directory (abs_path, fc_read_dir_callback, dir,/* include hidden */1);
-    else
-       status = walk_directory (abs_path, fc_read_dir_callback, dir,/* include hidden */ 0);
+    status = walk_directory (abs_path, fc_read_dir_callback, dir,
+        /* include hidden = */ (dir->options & FC_HIDDEN) ? 1 : 0);
     return (status);
   }
   else if (!S_ISREG (statbuf.st_mode))
@@ -544,10 +542,8 @@ static int fc_read_dir (fc_directory_conf_t *dir)
   if (dir->mtime != 0)
     dir->now = time (NULL);
     
-  if(dir->options & FC_HIDDEN)
-    status = walk_directory (dir->path, fc_read_dir_callback, dir,/* include hidden */ 1);
-  else
-    status = walk_directory (dir->path, fc_read_dir_callback, dir,/* include hidden */ 0);
+  status = walk_directory (dir->path, fc_read_dir_callback, dir,
+      /* include hidden */ (dir->options & FC_HIDDEN) ? 1 : 0);
   if (status != 0)
   {
     WARNING ("filecount plugin: walk_directory (%s) failed.", dir->path);