Merge pull request #1611 from stefanth/Collection3/graph-rendering-speedup
authorRuben Kerkhof <ruben@rubenkerkhof.com>
Sat, 2 Apr 2016 13:14:29 +0000 (15:14 +0200)
committerRuben Kerkhof <ruben@rubenkerkhof.com>
Sat, 2 Apr 2016 13:14:29 +0000 (15:14 +0200)
Collection3: Graphing speed improvements with many hosts

140 files changed:
configure.ac
contrib/redhat/collectd.spec
src/aggregation.c
src/amqp.c
src/apache.c
src/apple_sensors.c
src/barometer.c
src/battery.c
src/bind.c
src/ceph.c
src/ceph_test.c
src/collectd-exec.pod
src/collectd-nagios.c
src/collectd-tg.c
src/collectd.conf.in
src/collectd.conf.pod
src/cpu.c
src/cpython.h
src/curl.c
src/curl_json.c
src/curl_xml.c
src/daemon/collectd.h
src/daemon/common.c
src/daemon/configfile.c
src/daemon/configfile.h
src/daemon/filter_chain.c
src/daemon/filter_chain.h
src/daemon/meta_data.c
src/daemon/plugin.c
src/daemon/types_list.c
src/daemon/utils_avltree.c
src/daemon/utils_cache.c
src/daemon/utils_heap.c
src/daemon/utils_ignorelist.c
src/daemon/utils_llist.c
src/daemon/utils_match.c
src/daemon/utils_random.c
src/daemon/utils_subst.c
src/daemon/utils_subst_test.c
src/daemon/utils_tail.c
src/daemon/utils_tail_match.c
src/daemon/utils_threshold.h
src/daemon/utils_time.h
src/dbi.c
src/disk.c
src/dns.c
src/drbd.c
src/email.c
src/ethstat.c
src/exec.c
src/filecount.c
src/gmond.c
src/interface.c
src/ipc.c
src/ipmi.c
src/iptables.c
src/java.c
src/libcollectdclient/client.c
src/libcollectdclient/collectd/network.h
src/libcollectdclient/network.c
src/libcollectdclient/network_buffer.c
src/liboconfig/oconfig.c
src/liboconfig/parser.y
src/madwifi.c
src/match_empty_counter.c
src/match_hashed.c
src/match_regex.c
src/match_timediff.c
src/match_value.c
src/memcachec.c
src/memcached.c
src/modbus.c
src/mqtt.c
src/mysql.c
src/netapp.c
src/netlink.c
src/network.c
src/nfs.c
src/notify_email.c
src/nut.c
src/olsrd.c
src/onewire.c
src/openldap.c
src/openvpn.c
src/oracle.c
src/perl.c
src/pinba.c
src/ping.c
src/postgresql.c
src/powerdns.c
src/processes.c
src/protocols.c
src/pyconfig.c
src/python.c
src/pyvalues.c
src/redis.c
src/routeros.c
src/rrdcached.c
src/rrdtool.c
src/sensors.c
src/sigrok.c
src/snmp.c
src/statsd.c
src/tail_csv.c
src/target_notification.c
src/target_replace.c
src/target_scale.c
src/target_set.c
src/tcpconns.c
src/teamspeak2.c
src/threshold.c
src/types.db
src/unixsock.c
src/users.c
src/utils_cmd_putval.c
src/utils_db_query.c
src/utils_db_query.h
src/utils_dns.c
src/utils_dns.h
src/utils_fbhash.c
src/utils_latency.c
src/utils_mount.c
src/utils_parse_option.c
src/utils_rrdcreate.c
src/utils_vl_lookup.c
src/utils_vl_lookup_test.c
src/uuid.c
src/varnish.c
src/virt.c
src/vmem.c
src/vserver.c
src/wireless.c
src/write_graphite.c
src/write_http.c
src/write_mongodb.c
src/write_redis.c
src/write_riemann.c
src/write_sensu.c
src/write_tsdb.c
src/zone.c

index 9f812a9..333f29a 100644 (file)
@@ -644,7 +644,35 @@ AC_CHECK_HEADERS(linux/un.h, [], [],
 #endif
 ])
 
-AC_CHECK_HEADERS(pwd.h grp.h sys/un.h ctype.h limits.h xfs/xqm.h fs_info.h fshelp.h paths.h mntent.h mnttab.h sys/fstyp.h sys/fs_types.h sys/mntent.h sys/mnttab.h sys/statfs.h sys/statvfs.h sys/vfs.h sys/vfstab.h sys/vmmeter.h kvm.h wordexp.h locale.h)
+AC_CHECK_HEADERS([ \
+  ctype.h \
+  fs_info.h \
+  fshelp.h \
+  grp.h \
+  kvm.h \
+  limits.h \
+  locale.h \
+  mntent.h \
+  mnttab.h \
+  paths.h \
+  pwd.h \
+  sys/fs_types.h \
+  sys/fstyp.h \
+  sys/mntent.h \
+  sys/mnttab.h \
+  sys/statfs.h \
+  sys/statvfs.h \
+  sys/un.h \
+  sys/vfs.h \
+  sys/vfstab.h \
+  sys/vmmeter.h \
+  wordexp.h \
+])
+
+AC_CHECK_HEADERS([xfs/xqm.h], [], [],
+[
+#define _GNU_SOURCE
+])
 
 # For the dns plugin
 AC_CHECK_HEADERS(arpa/nameser.h)
@@ -850,8 +878,6 @@ fi
 if test "x$have_clock_gettime" = "xyes"
 then
        AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [Define if the clock_gettime(2) function is available.])
-else
-       AC_MSG_WARN(cannot find clock_gettime)
 fi
 
 nanosleep_needs_rt="no"
@@ -4373,6 +4399,7 @@ fi
 if test "x$with_libstatgrab" = "xyes"
 then
   SAVE_CFLAGS="$CFLAGS"
+  SAVE_LDFLAGS="$LDFLAGS"
   SAVE_LIBS="$LIBS"
 
   CFLAGS="$CFLAGS $with_libstatgrab_cflags"
index 53ceb93..4d4e0aa 100644 (file)
 %{?el7:%global _has_lvm2app_h 1}
 %{?el7:%global _has_libudev 1}
 %{?el7:%global _has_recent_librrd 1}
-%{?el7:%global _has_broken_libmemcached 1}
 %{?el7:%global _has_iproute 1}
 %{?el7:%global _has_atasmart 1}
 %{?el7:%global _has_hiredis 1}
 %{?el7:%global _has_asm_msr_index 1}
 %{?el7:%global _has_libmosquitto 1}
+%{?el7:%global _has_libmodbus 1}
+%{?el7:%global _has_xmms 1}
 
 # plugins enabled by default
 %define with_aggregation 0%{!?_without_aggregation:1}
 %define with_madwifi 0%{!?_without_madwifi:1}
 %define with_mbmon 0%{!?_without_mbmon:1}
 %define with_md 0%{!?_without_md:1}
-%define with_memcachec 0%{!?_without_memcachec:0%{!?_has_broken_libmemcached:1}}
+%define with_memcachec 0%{!?_without_memcachec:1}
 %define with_memcached 0%{!?_without_memcached:1}
 %define with_memory 0%{!?_without_memory:1}
 %define with_multimeter 0%{!?_without_multimeter:1}
 %define with_write_riemann 0%{!?_without_write_riemann:1}
 %define with_write_sensu 0%{!?_without_write_sensu:1}
 %define with_write_tsdb 0%{!?_without_write_tsdb:1}
+%define with_xmms 0%{!?_without_xmms:0%{?_has_xmms}}
 %define with_zfs_arc 0%{!?_without_zfs_arc:1}
 %define with_zookeeper 0%{!?_without_zookeeper:1}
 
 %define with_write_kafka 0%{!?_without_write_kafka:0}
 # plugin write_mongodb disabled, requires libmongoc
 %define with_write_mongodb 0%{!?_without_write_mongodb:0}
-# plugin xmms disabled, requires xmms
-%define with_xmms 0%{!?_without_xmms:0}
 # plugin zone disabled, requires Solaris
 %define with_zone 0%{!?_without_zone:0}
 
@@ -789,6 +789,16 @@ BuildRequires:     protobuf-c-devel
 The riemann plugin submits values to Riemann, an event stream processor.
 %endif
 
+%if %{with_xmms}
+%package xmms
+Summary:       XMMS plugin for collectd
+Group:         System Environment/Daemons
+Requires:      %{name}%{?_isa} = %{version}-%{release}
+BuildRequires: xmms-devel
+%description xmms
+The xmms plugin collects information from the XMMS music player.
+%endif
+
 %package collection3
 Summary:       Web-based viewer for collectd
 Group:         System Environment/Daemons
@@ -2366,6 +2376,11 @@ fi
 %{_libdir}/%{name}/write_riemann.so
 %endif
 
+%if %{with_xmms}
+%files xmms
+%{_libdir}/%{name}/xmms.so
+%endif
+
 %files collection3
 %{_localstatedir}/www/collection3
 %{_sysconfdir}/httpd/conf.d/collection3.conf
@@ -2395,11 +2410,12 @@ fi
 - Install collectdctl, collectd-tg and collectd-nagios in collectd-utils.rpm
 - Add build-dependency on libcap-devel
 
-* Mon Aug 19 2013 Marc Fournier <marc.fournier@camptocamp.com> 5.4.0-1
+* Mon Aug 19 2013 Marc Fournier <marc.fournier@camptocamp.com> 5.4.2-1
 - New upstream version
 - Build netlink plugin by default
 - Enable cgroups, lvm and statsd plugins
 - Enable (but don't build by default) mic, aquaero and sigrok plugins
+- Enable modbus, memcachec and xmms plugins on RHEL7
 
 * Tue Aug 06 2013 Marc Fournier <marc.fournier@camptocamp.com> 5.3.1-1
 - New upstream version
index 56e4955..3d5f396 100644 (file)
@@ -240,13 +240,12 @@ static agg_instance_t *agg_instance_create (data_set_t const *ds, /* {{{ */
 
   DEBUG ("aggregation plugin: Creating new instance.");
 
-  inst = malloc (sizeof (*inst));
+  inst = calloc (1, sizeof (*inst));
   if (inst == NULL)
   {
-    ERROR ("aggregation plugin: malloc() failed.");
+    ERROR ("aggregation plugin: calloc() failed.");
     return (NULL);
   }
-  memset (inst, 0, sizeof (*inst));
   pthread_mutex_init (&inst->lock, /* attr = */ NULL);
 
   inst->ds_type = ds->ds[0].type;
@@ -259,14 +258,13 @@ static agg_instance_t *agg_instance_create (data_set_t const *ds, /* {{{ */
 #define INIT_STATE(field) do { \
   inst->state_ ## field = NULL; \
   if (agg->calc_ ## field) { \
-    inst->state_ ## field = malloc (sizeof (*inst->state_ ## field)); \
+    inst->state_ ## field = calloc (1, sizeof (*inst->state_ ## field)); \
     if (inst->state_ ## field == NULL) { \
       agg_instance_destroy (inst); \
       free (inst); \
-      ERROR ("aggregation plugin: malloc() failed."); \
+      ERROR ("aggregation plugin: calloc() failed."); \
       return (NULL); \
     } \
-    memset (inst->state_ ## field, 0, sizeof (*inst->state_ ## field)); \
   } \
 } while (0)
 
@@ -528,13 +526,12 @@ static int agg_config_aggregation (oconfig_item_t *ci) /* {{{ */
   int status;
   int i;
 
-  agg = malloc (sizeof (*agg));
+  agg = calloc (1, sizeof (*agg));
   if (agg == NULL)
   {
-    ERROR ("aggregation plugin: malloc failed.");
+    ERROR ("aggregation plugin: calloc failed.");
     return (-1);
   }
-  memset (agg, 0, sizeof (*agg));
 
   sstrncpy (agg->ident.host, "/.*/", sizeof (agg->ident.host));
   sstrncpy (agg->ident.plugin, "/.*/", sizeof (agg->ident.plugin));
index 4206bdc..ec79430 100644 (file)
@@ -925,15 +925,14 @@ static int camqp_config_connection (oconfig_item_t *ci, /* {{{ */
     int status;
     int i;
 
-    conf = malloc (sizeof (*conf));
+    conf = calloc (1, sizeof (*conf));
     if (conf == NULL)
     {
-        ERROR ("amqp plugin: malloc failed.");
+        ERROR ("amqp plugin: calloc failed.");
         return (ENOMEM);
     }
 
     /* Initialize "conf" {{{ */
-    memset (conf, 0, sizeof (*conf));
     conf->publish = publish;
     conf->name = NULL;
     conf->format = CAMQP_FORMAT_COMMAND;
index 38035ca..baa6081 100644 (file)
@@ -175,13 +175,12 @@ static int config_add (oconfig_item_t *ci)
        int i;
        int status;
 
-       st = malloc (sizeof (*st));
+       st = calloc (1, sizeof (*st));
        if (st == NULL)
        {
-               ERROR ("apache plugin: malloc failed.");
+               ERROR ("apache plugin: calloc failed.");
                return (-1);
        }
-       memset (st, 0, sizeof (*st));
 
        st->timeout = -1;
 
index 19d5a49..7ed2016 100644 (file)
@@ -59,7 +59,7 @@ static mach_port_t io_master_port = MACH_PORT_NULL;
 static int as_init (void)
 {
        kern_return_t status;
-       
+
        if (io_master_port != MACH_PORT_NULL)
        {
                mach_port_deallocate (mach_task_self (),
index 0e8deaf..f14ac04 100644 (file)
@@ -343,9 +343,9 @@ static temperature_list_t * temp_list = NULL;
  */
 static int temp_list_add(temperature_list_t * list, const char * sensor)
 {
-    temperature_list_t * new_temp;
+    temperature_list_t *new_temp;
 
-    new_temp = (temperature_list_t *) malloc(sizeof(*new_temp));
+    new_temp = malloc(sizeof (*new_temp));
     if(new_temp == NULL)
         return -1;
 
index c4c050d..0350a9e 100644 (file)
@@ -143,7 +143,7 @@ static void submit_capacity (char const *plugin_instance, /* {{{ */
 } /* }}} void submit_capacity */
 
 #if HAVE_IOKIT_PS_IOPOWERSOURCES_H || HAVE_IOKIT_IOKITLIB_H
-static double dict_get_double (CFDictionaryRef dict, char *key_string) /* {{{ */
+static double dict_get_double (CFDictionaryRef dict, const char *key_string) /* {{{ */
 {
        double      val_double;
        long long   val_int;
@@ -341,7 +341,7 @@ static void get_via_generic_iokit (double *ret_capacity_full, /* {{{ */
                                *ret_voltage = temp_double / 1000.0;
                        }
                }
-               
+
                CFRelease (bat_root_dict);
        }
 
index b9731ee..f2cd167 100644 (file)
@@ -54,7 +54,7 @@
 # define BIND_DEFAULT_URL "http://localhost:8053/"
 #endif
 
-/* 
+/*
  * Some types used for the callback functions. `translation_table_ptr_t' and
  * `list_info_ptr_t' are passed to the callbacks in the `void *user_data'
  * pointer.
@@ -474,7 +474,7 @@ static int bind_xml_read_timestamp (const char *xpath_expression, /* {{{ */
   return (0);
 } /* }}} int bind_xml_read_timestamp */
 
-/* 
+/*
  * bind_parse_generic_name_value
  *
  * Reads statistics in the form:
@@ -559,7 +559,7 @@ static int bind_parse_generic_name_value (const char *xpath_expression, /* {{{ *
   return (0);
 } /* }}} int bind_parse_generic_name_value */
 
-/* 
+/*
  * bind_parse_generic_value_list
  *
  * Reads statistics in the form:
@@ -774,7 +774,7 @@ static int bind_xml_stats_handle_zone (int version, xmlDoc *doc, /* {{{ */
   { /* Parse the <counters> tag {{{ */
     char plugin_instance[DATA_MAX_NAME_LEN];
     translation_table_ptr_t table_ptr =
-    { 
+    {
       nsstats_translation_table,
       nsstats_translation_table_length,
       plugin_instance
@@ -955,7 +955,7 @@ static int bind_xml_stats_handle_view (int version, xmlDoc *doc, /* {{{ */
   {
     char plugin_instance[DATA_MAX_NAME_LEN];
     translation_table_ptr_t table_ptr =
-    { 
+    {
       resstats_translation_table,
       resstats_translation_table_length,
       plugin_instance
index b1ca3b6..04a3974 100644 (file)
@@ -623,7 +623,7 @@ static int ceph_daemon_add_ds_entry(struct ceph_daemon *d, const char *name,
         return -ENOMEM;
     }
 
-    d->ds_names[d->ds_num] = malloc(sizeof(char) * DATA_MAX_NAME_LEN);
+    d->ds_names[d->ds_num] = malloc(DATA_MAX_NAME_LEN);
     if(!d->ds_names[d->ds_num])
     {
         return -ENOMEM;
@@ -747,7 +747,7 @@ static int cc_add_daemon_config(oconfig_item_t *ci)
     }
     g_daemons = tmp;
 
-    nd = malloc(sizeof(*nd));
+    nd = malloc(sizeof (*nd));
     if(!nd)
     {
         return ENOMEM;
@@ -845,7 +845,7 @@ node_handler_define_schema(void *arg, const char *val, const char *key)
 static int add_last(struct ceph_daemon *d, const char *ds_n, double cur_sum,
         uint64_t cur_count)
 {
-    d->last_poll_data[d->last_idx] = malloc(1 * sizeof(struct last_data));
+    d->last_poll_data[d->last_idx] = malloc(sizeof (*d->last_poll_data[d->last_idx]));
     if(!d->last_poll_data[d->last_idx])
     {
         return -ENOMEM;
@@ -873,7 +873,7 @@ static int update_last(struct ceph_daemon *d, const char *ds_n, int index,
 
     if(!d->last_poll_data)
     {
-        d->last_poll_data = malloc(1 * sizeof(struct last_data *));
+        d->last_poll_data = malloc(sizeof (*d->last_poll_data));
         if(!d->last_poll_data)
         {
             return -ENOMEM;
index acab179..1141140 100644 (file)
@@ -24,8 +24,8 @@
 
 struct case_s
 {
-  char *key;
-  char *value;
+  const char *key;
+  const char *value;
 };
 typedef struct case_s case_t;
 
@@ -136,11 +136,11 @@ DEF_TEST(traverse_json)
   yajl_handle hndl;
 #if HAVE_YAJL_V2
   hndl = yajl_alloc (&callbacks, NULL, &ctx);
-  CHECK_ZERO (traverse_json ((unsigned char *) json, (uint32_t) strlen (json), hndl));
+  CHECK_ZERO (traverse_json ((const unsigned char *) json, (uint32_t) strlen (json), hndl));
   CHECK_ZERO (yajl_complete_parse (hndl));
 #else
   hndl = yajl_alloc (&callbacks, NULL, NULL, &ctx);
-  CHECK_ZERO (traverse_json ((unsigned char *) json, (uint32_t) strlen (json), hndl));
+  CHECK_ZERO (traverse_json ((const unsigned char *) json, (uint32_t) strlen (json), hndl));
   CHECK_ZERO (yajl_parse_complete (hndl));
 #endif
 
@@ -150,8 +150,8 @@ DEF_TEST(traverse_json)
 DEF_TEST(parse_keys)
 {
   struct {
-    char *str;
-    char *want;
+    const char *str;
+    const char *want;
   } cases[] = {
     {"WBThrottle.bytes_dirtied.description.bytes_wb.description.ios_dirtied.description.ios_wb.type", "WBThrottle.bytesDirtied.description.bytesWb.description.iosDirt"},
     {"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},
index 0e4cd53..654db40 100644 (file)
@@ -94,7 +94,7 @@ I<Valuelist> is a colon-separated list of the time and the values, each either
 an integer if the data-source is a counter, or a double if the data-source is
 of type "gauge". You can submit an undefined gauge-value by using B<U>. When
 submitting B<U> to a counter the behavior is undefined. The time is given as
-epoch (i.E<nbsp>e. standard UNIX time).
+epoch (i.E<nbsp>e. standard UNIX time) or B<N> to use the current time.
 
 You can mix options and values, but the order is important: Options only
 effect following values, so specifying an option as last field is allowed, but
index 49e84f3..712c24f 100644 (file)
@@ -136,14 +136,14 @@ static int filter_ds (size_t *values_num,
        new_values = (gauge_t *)calloc (match_ds_num_g, sizeof (*new_values));
        if (new_values == NULL)
        {
-               fprintf (stderr, "malloc failed: %s\n", strerror (errno));
+               fprintf (stderr, "calloc failed: %s\n", strerror (errno));
                return (RET_UNKNOWN);
        }
 
        new_names = (char **)calloc (match_ds_num_g, sizeof (*new_names));
        if (new_names == NULL)
        {
-               fprintf (stderr, "malloc failed: %s\n", strerror (errno));
+               fprintf (stderr, "calloc failed: %s\n", strerror (errno));
                free (new_values);
                return (RET_UNKNOWN);
        }
index 53fd3a1..23257fd 100644 (file)
@@ -156,13 +156,12 @@ static lcc_value_list_t *create_value_list (void) /* {{{ */
   lcc_value_list_t *vl;
   int host_num;
 
-  vl = malloc (sizeof (*vl));
+  vl = calloc (1, sizeof (*vl));
   if (vl == NULL)
   {
-    fprintf (stderr, "malloc failed.\n");
+    fprintf (stderr, "calloc failed.\n");
     return (NULL);
   }
-  memset (vl, 0, sizeof (*vl));
 
   vl->values = calloc (/* nmemb = */ 1, sizeof (*vl->values));
   if (vl->values == NULL)
@@ -368,7 +367,7 @@ int main (int argc, char **argv) /* {{{ */
   else
   {
     lcc_server_t *srv;
-    
+
     srv = lcc_server_create (net, conf_destination, conf_service);
     if (srv == NULL)
     {
index f57241d..20b17b2 100644 (file)
 ##     None of the following option should be set manually
 ##     This plugin automatically detect most optimal options
 ##     Only set values here if:
-##     - The module ask you to
+##     - The module asks you to
 ##     - You want to disable the collection of some data
-##     - Your (intel) CPU is not supported (yet) by the module
-##     - The module generate a lot of errors 'MSR offset 0x... read failed'
+##     - Your (Intel) CPU is not supported (yet) by the module
+##     - The module generates a lot of errors 'MSR offset 0x... read failed'
 ##     In the last two cases, please open a bug request
 #
 #      TCCActivationTemp "100"
index 8c3f56b..cf7ccd0 100644 (file)
@@ -38,7 +38,7 @@ i.e. a C<E<lt>PluginE<nbsp>...E<gt>> block.
 The syntax of this config file is similar to the config file of the famous
 I<Apache> webserver. Each line contains either an option (a key and a list of
 one or more values) or a section-start or -end. Empty lines and everything
-after a non-quoted hash-symbol (C<#>) is ignored. I<Keys> are unquoted
+after a non-quoted hash-symbol (C<#>) are ignored. I<Keys> are unquoted
 strings, consisting only of alphanumeric characters and the underscore (C<_>)
 character. Keys are handled case insensitive by I<collectd> itself and all
 plugins included with it. I<Values> can either be an I<unquoted string>, a
@@ -70,7 +70,7 @@ C<E<lt>B<Plugin> ...E<gt>> block.
 
 =item B<BaseDir> I<Directory>
 
-Sets the base directory. This is the directory beneath all RRD-files are
+Sets the base directory. This is the directory beneath which all RRD-files are
 created. Possibly more subdirectories are created. This is also the working
 directory for the daemon.
 
@@ -83,7 +83,7 @@ I<collectd> will be mostly useless.
 Only the first B<LoadPlugin> statement or block for a given plugin name has any
 effect. This is useful when you want to split up the configuration into smaller
 files and want each file to be "self contained", i.e. it contains a B<Plugin>
-block I<and> then appropriate B<LoadPlugin> statement. The downside is that if
+block I<and> the appropriate B<LoadPlugin> statement. The downside is that if
 you have multiple conflicting B<LoadPlugin> blocks, e.g. when they specify
 different intervals, only one of them (the first one encountered) will take
 effect and all others will be silently ignored.
@@ -127,13 +127,13 @@ the average user from ever having to deal with this low level linking stuff.
 =item B<Interval> I<Seconds>
 
 Sets a plugin-specific interval for collecting metrics. This overrides the
-global B<Interval> setting. If a plugin provides own support for specifying an
-interval, that setting will take precedence.
+global B<Interval> setting. If a plugin provides its own support for specifying
+an interval, that setting will take precedence.
 
 =item B<FlushInterval> I<Seconds>
 
-Specifies the the interval, in seconds, to call the flush callback if it's
-defined in this plugin. By default, this is disabled
+Specifies the interval, in seconds, to call the flush callback if it's
+defined in this plugin. By default, this is disabled.
 
 =item B<FlushTimeout> I<Seconds>
 
@@ -214,7 +214,7 @@ matching C<*.conf> in any subdirectory of C</etc/collectd.d>:
 
 =back
 
-If more than one files are included by a single B<Include> option, the files
+If more than one file is included by a single B<Include> option, the files
 will be included in lexicographical order (as defined by the C<strcmp>
 function). Thus, you can e.E<nbsp>g. use numbered prefixes to specify the
 order in which the files are loaded.
@@ -255,7 +255,7 @@ magic! (Assuming you're using the I<RRDtool> or I<RRDCacheD> plugin.)
 
 =item B<MaxReadInterval> I<Seconds>
 
-Read plugin doubles interval between queries after each failed attempt
+A read plugin doubles the interval between queries after each failed attempt
 to get data.
 
 This options limits the maximum value of the interval. The default value is
index 7f8c985..9c432d1 100644 (file)
--- a/src/cpu.c
+++ b/src/cpu.c
@@ -814,8 +814,7 @@ static int cpu_read (void)
 
        if (pnumcpu != numcpu || perfcpu == NULL)
        {
-               if (perfcpu != NULL)
-                       free(perfcpu);
+               free(perfcpu);
                perfcpu = malloc(numcpu * sizeof(perfstat_cpu_t));
        }
        pnumcpu = numcpu;
index 81e580d..880fa4c 100644 (file)
@@ -21,7 +21,7 @@
  * DEALINGS IN THE SOFTWARE.
  *
  * Authors:
- *   Sven Trenkel <collectd at semidefinite.de>  
+ *   Sven Trenkel <collectd at semidefinite.de>
  **/
 
 /* Some python versions don't include this by default. */
 } while (0)
 static inline void CPY_STRCAT(PyObject **a, PyObject *b) {
        PyObject *ret;
-       
+
        if (!a || !*a)
                return;
-       
+
        ret = PyUnicode_Concat(*a, b);
        Py_DECREF(*a);
        *a = ret;
@@ -156,7 +156,7 @@ static inline PyObject *cpy_string_to_unicode_or_bytes(const char *buf) {
        return PyBytes_FromString(buf);
 #else
        return PyString_FromString(buf);
-#endif 
+#endif
 }
 
 void cpy_log_exception(const char *context);
index 16ae3ab..5f78207 100644 (file)
@@ -270,13 +270,12 @@ static int cc_config_add_match (web_page_t *page, /* {{{ */
     WARNING ("curl plugin: Ignoring arguments for the `Match' block.");
   }
 
-  match = (web_match_t *) malloc (sizeof (*match));
+  match = calloc (1, sizeof (*match));
   if (match == NULL)
   {
-    ERROR ("curl plugin: malloc failed.");
+    ERROR ("curl plugin: calloc failed.");
     return (-1);
   }
-  memset (match, 0, sizeof (*match));
 
   status = 0;
   for (i = 0; i < ci->children_num; i++)
@@ -388,7 +387,7 @@ static int cc_page_init_curl (web_page_t *wp) /* {{{ */
     if (wp->pass != NULL)
       credentials_size += strlen (wp->pass);
 
-    wp->credentials = (char *) malloc (credentials_size);
+    wp->credentials = malloc (credentials_size);
     if (wp->credentials == NULL)
     {
       ERROR ("curl plugin: malloc failed.");
@@ -436,13 +435,12 @@ static int cc_config_add_page (oconfig_item_t *ci) /* {{{ */
     return (-1);
   }
 
-  page = (web_page_t *) malloc (sizeof (*page));
+  page = calloc (1, sizeof (*page));
   if (page == NULL)
   {
-    ERROR ("curl plugin: malloc failed.");
+    ERROR ("curl plugin: calloc failed.");
     return (-1);
   }
-  memset (page, 0, sizeof (*page));
   page->url = NULL;
   page->user = NULL;
   page->pass = NULL;
index 45898c3..33b1a6f 100644 (file)
@@ -474,13 +474,12 @@ static int cj_config_add_key (cj_t *db, /* {{{ */
     return (-1);
   }
 
-  key = (cj_key_t *) malloc (sizeof (*key));
+  key = calloc (1, sizeof (*key));
   if (key == NULL)
   {
-    ERROR ("curl_json plugin: malloc failed.");
+    ERROR ("curl_json plugin: calloc failed.");
     return (-1);
   }
-  memset (key, 0, sizeof (*key));
   key->magic = CJ_KEY_MAGIC;
 
   if (strcasecmp ("Key", ci->key) == 0)
@@ -615,7 +614,7 @@ static int cj_init_curl (cj_t *db) /* {{{ */
     if (db->pass != NULL)
       credentials_size += strlen (db->pass);
 
-    db->credentials = (char *) malloc (credentials_size);
+    db->credentials = malloc (credentials_size);
     if (db->credentials == NULL)
     {
       ERROR ("curl_json plugin: malloc failed.");
@@ -667,13 +666,12 @@ static int cj_config_add_url (oconfig_item_t *ci) /* {{{ */
     return (-1);
   }
 
-  db = (cj_t *) malloc (sizeof (*db));
+  db = calloc (1, sizeof (*db));
   if (db == NULL)
   {
-    ERROR ("curl_json plugin: malloc failed.");
+    ERROR ("curl_json plugin: calloc failed.");
     return (-1);
   }
-  memset (db, 0, sizeof (*db));
 
   db->timeout = -1;
 
index 39d6fd0..03ac0c1 100644 (file)
@@ -248,7 +248,7 @@ static int cx_check_type (const data_set_t *ds, cx_xpath_t *xpath) /* {{{ */
   return (0);
 } /* }}} cx_check_type */
 
-static xmlXPathObjectPtr cx_evaluate_xpath (xmlXPathContextPtr xpath_ctx, /* {{{ */ 
+static xmlXPathObjectPtr cx_evaluate_xpath (xmlXPathContextPtr xpath_ctx, /* {{{ */
            xmlChar *expr)
 {
   xmlXPathObjectPtr xpath_obj;
@@ -315,7 +315,7 @@ static int cx_handle_single_value_xpath (xmlXPathContextPtr xpath_ctx, /* {{{ */
   {
     WARNING ("curl_xml plugin: "
         "relative xpath expression \"%s\" is expected to return "
-        "only text/attribute node which is not the case. Skipping...", 
+        "only text/attribute node which is not the case. Skipping...",
         xpath->values[index].path);
     xmlXPathFreeObject (values_node_obj);
     return (-1);
@@ -336,7 +336,7 @@ static int cx_handle_single_value_xpath (xmlXPathContextPtr xpath_ctx, /* {{{ */
       vl->values[index].absolute = (absolute_t) strtoull (node_value,
           /* endptr = */ NULL, /* base = */ 0);
       break;
-    case DS_TYPE_GAUGE: 
+    case DS_TYPE_GAUGE:
       vl->values[index].gauge = (gauge_t) strtod (node_value,
           /* endptr = */ NULL);
   }
@@ -472,7 +472,7 @@ static int cx_handle_instance_xpath (xmlXPathContextPtr xpath_ctx, /* {{{ */
 
 static int  cx_handle_base_xpath (char const *plugin_instance, /* {{{ */
     char const *host,
-    xmlXPathContextPtr xpath_ctx, const data_set_t *ds, 
+    xmlXPathContextPtr xpath_ctx, const data_set_t *ds,
     char *base_xpath, cx_xpath_t *xpath)
 {
   int total_nodes;
@@ -483,7 +483,7 @@ static int  cx_handle_base_xpath (char const *plugin_instance, /* {{{ */
 
   value_list_t vl = VALUE_LIST_INIT;
 
-  base_node_obj = cx_evaluate_xpath (xpath_ctx, BAD_CAST base_xpath); 
+  base_node_obj = cx_evaluate_xpath (xpath_ctx, BAD_CAST base_xpath);
   if (base_node_obj == NULL)
     return -1; /* error is logged already */
 
@@ -500,7 +500,7 @@ static int  cx_handle_base_xpath (char const *plugin_instance, /* {{{ */
   }
 
   /* If base_xpath returned multiple results, then */
-  /* Instance in the xpath block is required */ 
+  /* Instance in the xpath block is required */
   if (total_nodes > 1 && xpath->instance == NULL)
   {
     ERROR ("curl_xml plugin: "
@@ -515,7 +515,7 @@ static int  cx_handle_base_xpath (char const *plugin_instance, /* {{{ */
   sstrncpy (vl.plugin, "curl_xml", sizeof (vl.plugin));
   sstrncpy (vl.host, (host != NULL) ? host : hostname_g, sizeof (vl.host));
   if (plugin_instance != NULL)
-    sstrncpy (vl.plugin_instance, plugin_instance, sizeof (vl.plugin_instance)); 
+    sstrncpy (vl.plugin_instance, plugin_instance, sizeof (vl.plugin_instance));
 
   for (i = 0; i < total_nodes; i++)
   {
@@ -534,19 +534,19 @@ static int  cx_handle_base_xpath (char const *plugin_instance, /* {{{ */
   } /* for (i = 0; i < total_nodes; i++) */
 
   /* free up the allocated memory */
-  xmlXPathFreeObject (base_node_obj); 
+  xmlXPathFreeObject (base_node_obj);
 
-  return (0); 
+  return (0);
 } /* }}} cx_handle_base_xpath */
 
-static int cx_handle_parsed_xml(xmlDocPtr doc, /* {{{ */ 
+static int cx_handle_parsed_xml(xmlDocPtr doc, /* {{{ */
                        xmlXPathContextPtr xpath_ctx, cx_t *db)
 {
   llentry_t *le;
   const data_set_t *ds;
   cx_xpath_t *xpath;
   int status=-1;
-  
+
 
   le = llist_head (db->list);
   while (le != NULL)
@@ -620,7 +620,7 @@ static int cx_curl_perform (cx_t *db, CURL *curl) /* {{{ */
   char *url;
   url = db->url;
 
-  db->buffer_fill = 0; 
+  db->buffer_fill = 0;
   status = curl_easy_perform (curl);
   if (status != CURLE_OK)
   {
@@ -686,7 +686,7 @@ static int cx_config_add_values (const char *name, cx_xpath_t *xpath, /* {{{ */
   sfree (xpath->values);
 
   xpath->values_len = 0;
-  xpath->values = (cx_values_t *) malloc (sizeof (cx_values_t) * ci->values_num);
+  xpath->values = malloc (sizeof (cx_values_t) * ci->values_num);
   if (xpath->values == NULL)
     return (-1);
   xpath->values_len = (size_t) ci->values_num;
@@ -709,13 +709,12 @@ static int cx_config_add_xpath (cx_t *db, oconfig_item_t *ci) /* {{{ */
   int status;
   int i;
 
-  xpath = malloc (sizeof (*xpath));
+  xpath = calloc (1, sizeof (*xpath));
   if (xpath == NULL)
   {
-    ERROR ("curl_xml plugin: malloc failed.");
+    ERROR ("curl_xml plugin: calloc failed.");
     return (-1);
   }
-  memset (xpath, 0, sizeof (*xpath));
 
   status = cf_util_get_string (ci, &xpath->path);
   if (status != 0)
@@ -873,7 +872,7 @@ static int cx_init_curl (cx_t *db) /* {{{ */
     if (db->pass != NULL)
       credentials_size += strlen (db->pass);
 
-    db->credentials = (char *) malloc (credentials_size);
+    db->credentials = malloc (credentials_size);
     if (db->credentials == NULL)
     {
       ERROR ("curl_xml plugin: malloc failed.");
@@ -923,13 +922,12 @@ static int cx_config_add_url (oconfig_item_t *ci) /* {{{ */
     return (-1);
   }
 
-  db = (cx_t *) malloc (sizeof (*db));
+  db = calloc (1, sizeof (*db));
   if (db == NULL)
   {
-    ERROR ("curl_xml plugin: malloc failed.");
+    ERROR ("curl_xml plugin: calloc failed.");
     return (-1);
   }
-  memset (db, 0, sizeof (*db));
 
   db->timeout = -1;
 
index 66b4856..9002187 100644 (file)
@@ -294,7 +294,7 @@ typedef int _Bool;
 # pragma GCC poison strcpy strcat strtok
 #endif
 
-/* 
+/*
  * Special hack for the perl plugin: Because the later included perl.h defines
  * a macro which is never used, but contains `sprintf', we cannot poison that
  * identifies just yet. The parl plugin will do that itself once perl.h is
index dd4f9b1..7b7353d 100644 (file)
@@ -115,10 +115,9 @@ char *ssnprintf_alloc (char const *format, ...) /* {{{ */
                return (strdup (static_buffer));
 
        /* Allocate a buffer large enough to hold the string. */
-       alloc_buffer = malloc (alloc_buffer_size);
+       alloc_buffer = calloc (1, alloc_buffer_size);
        if (alloc_buffer == NULL)
                return (NULL);
-       memset (alloc_buffer, 0, alloc_buffer_size);
 
        /* Print again into this new buffer. */
        va_start (ap, format);
@@ -144,7 +143,7 @@ char *sstrdup (const char *s)
        /* Do not use `strdup' here, because it's not specified in POSIX. It's
         * ``only'' an XSI extension. */
        sz = strlen (s) + 1;
-       r = (char *) malloc (sizeof (char) * sz);
+       r = malloc (sz);
        if (r == NULL)
        {
                ERROR ("sstrdup: Out of memory.");
@@ -409,10 +408,9 @@ int escape_string (char *buffer, size_t buffer_size)
   if (buffer_size < 3)
     return (EINVAL);
 
-  temp = (char *) malloc (buffer_size);
+  temp = calloc (1, buffer_size);
   if (temp == NULL)
     return (ENOMEM);
-  memset (temp, 0, buffer_size);
 
   temp[0] = '"';
   j = 1;
index 8a7621d..1d81a65 100644 (file)
@@ -257,7 +257,7 @@ static int dispatch_value_typesdb (oconfig_item_t *ci)
 static int dispatch_value_plugindir (oconfig_item_t *ci)
 {
        assert (strcasecmp (ci->key, "PluginDir") == 0);
-       
+
        if (ci->values_num != 1)
                return (-1);
        if (ci->values[0].type != OCONFIG_TYPE_STRING)
@@ -717,14 +717,13 @@ static oconfig_item_t *cf_read_dir (const char *dir,
                return (NULL);
        }
 
-       root = (oconfig_item_t *) malloc (sizeof (oconfig_item_t));
+       root = calloc (1, sizeof (*root));
        if (root == NULL)
        {
-               ERROR ("configfile: malloc failed.");
+               ERROR ("configfile: calloc failed.");
                closedir (dh);
                return (NULL);
        }
-       memset (root, 0, sizeof (oconfig_item_t));
 
        while ((de = readdir (dh)) != NULL)
        {
@@ -835,13 +834,12 @@ static oconfig_item_t *cf_read_generic (const char *path,
                return (NULL);
        }
 
-       root = (oconfig_item_t *) malloc (sizeof (oconfig_item_t));
+       root = calloc (1, sizeof (*root));
        if (root == NULL)
        {
-               ERROR ("configfile: malloc failed.");
+               ERROR ("configfile: calloc failed.");
                return (NULL);
        }
-       memset (root, '\0', sizeof (oconfig_item_t));
 
        /* wordexp() might return a sorted list already. That's not
         * documented though, so let's make sure we get what we want. */
@@ -926,7 +924,7 @@ static oconfig_item_t *cf_read_generic (const char *path,
 } /* oconfig_item_t *cf_read_generic */
 #endif /* !HAVE_WORDEXP_H */
 
-/* 
+/*
  * Public functions
  */
 int global_option_set (const char *option, const char *value)
@@ -969,7 +967,7 @@ const char *global_option_get (const char *option)
 
        if (i >= cf_global_options_num)
                return (NULL);
-       
+
        return ((cf_global_options[i].value != NULL)
                        ? cf_global_options[i].value
                        : cf_global_options[i].def);
@@ -1067,7 +1065,7 @@ void cf_register (const char *type,
        cf_unregister (type);
 
        /* This pointer will be free'd in `cf_unregister' */
-       if ((cf_cb = (cf_callback_t *) malloc (sizeof (cf_callback_t))) == NULL)
+       if ((cf_cb = malloc (sizeof (*cf_cb))) == NULL)
                return;
 
        cf_cb->type     = type;
@@ -1084,7 +1082,7 @@ int cf_register_complex (const char *type, int (*callback) (oconfig_item_t *))
 {
        cf_complex_callback_t *new;
 
-       new = (cf_complex_callback_t *) malloc (sizeof (cf_complex_callback_t));
+       new = malloc (sizeof (*new));
        if (new == NULL)
                return (-1);
 
index 648246b..09dbe58 100644 (file)
@@ -34,7 +34,7 @@
 /*
  * DESCRIPTION
  *  Remove a registered plugin from the internal data structures.
- * 
+ *
  * PARAMETERS
  *  `type'      Name of the plugin (must be the same as passed to
  *              `plugin_register'
index ecc7f16..f4e343c 100644 (file)
@@ -174,7 +174,7 @@ static char *fc_strdup (const char *orig) /* {{{ */
     return (NULL);
 
   sz = strlen (orig) + 1;
-  dest = (char *) malloc (sz);
+  dest = malloc (sz);
   if (dest == NULL)
     return (NULL);
 
@@ -235,13 +235,12 @@ static int fc_config_add_match (fc_match_t **matches_head, /* {{{ */
     return (-1);
   }
 
-  m = (fc_match_t *) malloc (sizeof (*m));
+  m = calloc (1, sizeof (*m));
   if (m == NULL)
   {
-    ERROR ("fc_config_add_match: malloc failed.");
+    ERROR ("fc_config_add_match: calloc failed.");
     return (-1);
   }
-  memset (m, 0, sizeof (*m));
 
   sstrncpy (m->name, ptr->name, sizeof (m->name));
   memcpy (&m->proc, &ptr->proc, sizeof (m->proc));
@@ -307,13 +306,12 @@ static int fc_config_add_target (fc_target_t **targets_head, /* {{{ */
     return (-1);
   }
 
-  t = (fc_target_t *) malloc (sizeof (*t));
+  t = calloc (1, sizeof (*t));
   if (t == NULL)
   {
-    ERROR ("fc_config_add_target: malloc failed.");
+    ERROR ("fc_config_add_target: calloc failed.");
     return (-1);
   }
-  memset (t, 0, sizeof (*t));
 
   sstrncpy (t->name, ptr->name, sizeof (t->name));
   memcpy (&t->proc, &ptr->proc, sizeof (t->proc));
@@ -335,7 +333,7 @@ static int fc_config_add_target (fc_target_t **targets_head, /* {{{ */
   {
     t->user_data = NULL;
   }
-  
+
   if (*targets_head != NULL)
   {
     ptr = *targets_head;
@@ -373,14 +371,12 @@ static int fc_config_add_rule (fc_chain_t *chain, /* {{{ */
     return (-1);
   }
 
-  rule = (fc_rule_t *) malloc (sizeof (*rule));
+  rule = calloc (1, sizeof (*rule));
   if (rule == NULL)
   {
-    ERROR ("fc_config_add_rule: malloc failed.");
+    ERROR ("fc_config_add_rule: calloc failed.");
     return (-1);
   }
-  memset (rule, 0, sizeof (*rule));
-  rule->next = NULL;
 
   if (ci->values_num == 1)
   {
@@ -469,17 +465,13 @@ static int fc_config_add_chain (const oconfig_item_t *ci) /* {{{ */
 
   if (chain == NULL)
   {
-    chain = (fc_chain_t *) malloc (sizeof (*chain));
+    chain = calloc (1, sizeof (*chain));
     if (chain == NULL)
     {
-      ERROR ("fc_config_add_chain: malloc failed.");
+      ERROR ("fc_config_add_chain: calloc failed.");
       return (-1);
     }
-    memset (chain, 0, sizeof (*chain));
     sstrncpy (chain->name, ci->values[0].value.string, sizeof (chain->name));
-    chain->rules = NULL;
-    chain->targets = NULL;
-    chain->next = NULL;
   }
 
   for (i = 0; i < ci->children_num; i++)
@@ -824,14 +816,12 @@ int fc_register_match (const char *name, match_proc_t proc) /* {{{ */
 
   DEBUG ("fc_register_match (%s);", name);
 
-  m = (fc_match_t *) malloc (sizeof (*m));
+  m = calloc (1, sizeof (*m));
   if (m == NULL)
     return (-ENOMEM);
-  memset (m, 0, sizeof (*m));
 
   sstrncpy (m->name, name, sizeof (m->name));
   memcpy (&m->proc, &proc, sizeof (m->proc));
-  m->next = NULL;
 
   if (match_list_head == NULL)
   {
@@ -858,14 +848,12 @@ int fc_register_target (const char *name, target_proc_t proc) /* {{{ */
 
   DEBUG ("fc_register_target (%s);", name);
 
-  t = (fc_target_t *) malloc (sizeof (*t));
+  t = calloc (1, sizeof (*t));
   if (t == NULL)
     return (-ENOMEM);
-  memset (t, 0, sizeof (*t));
 
   sstrncpy (t->name, name, sizeof (t->name));
   memcpy (&t->proc, &proc, sizeof (t->proc));
-  t->next = NULL;
 
   if (target_list_head == NULL)
   {
index 2db90db..dbf4b83 100644 (file)
@@ -97,7 +97,7 @@ int fc_process_chain (const data_set_t *ds, value_list_t *vl,
 
 int fc_default_action (const data_set_t *ds, value_list_t *vl);
 
-/* 
+/*
  * Shortcut for global configuration
  */
 int fc_configure (const oconfig_item_t *ci);
index e1d0ec5..f87e35e 100644 (file)
@@ -71,7 +71,7 @@ static char *md_strdup (const char *orig) /* {{{ */
     return (NULL);
 
   sz = strlen (orig) + 1;
-  dest = (char *) malloc (sz);
+  dest = malloc (sz);
   if (dest == NULL)
     return (NULL);
 
@@ -84,13 +84,12 @@ static meta_entry_t *md_entry_alloc (const char *key) /* {{{ */
 {
   meta_entry_t *e;
 
-  e = (meta_entry_t *) malloc (sizeof (*e));
+  e = calloc (1, sizeof (*e));
   if (e == NULL)
   {
-    ERROR ("md_entry_alloc: malloc failed.");
+    ERROR ("md_entry_alloc: calloc failed.");
     return (NULL);
   }
-  memset (e, 0, sizeof (*e));
 
   e->key = md_strdup (key);
   if (e->key == NULL)
@@ -220,15 +219,13 @@ meta_data_t *meta_data_create (void) /* {{{ */
 {
   meta_data_t *md;
 
-  md = (meta_data_t *) malloc (sizeof (*md));
+  md = calloc (1, sizeof (*md));
   if (md == NULL)
   {
-    ERROR ("meta_data_create: malloc failed.");
+    ERROR ("meta_data_create: calloc failed.");
     return (NULL);
   }
-  memset (md, 0, sizeof (*md));
 
-  md->head = NULL;
   pthread_mutex_init (&md->lock, /* attr = */ NULL);
 
   return (md);
@@ -317,7 +314,7 @@ int meta_data_toc (meta_data_t *md, char ***toc) /* {{{ */
   pthread_mutex_lock (&md->lock);
 
   for (e = md->head; e != NULL; e = e->next)
-    ++count;    
+    ++count;
 
   if (count == 0)
   {
@@ -328,7 +325,7 @@ int meta_data_toc (meta_data_t *md, char ***toc) /* {{{ */
   *toc = calloc(count, sizeof(**toc));
   for (e = md->head; e != NULL; e = e->next)
     (*toc)[i++] = strdup(e->key);
-  
+
   pthread_mutex_unlock (&md->lock);
   return count;
 } /* }}} int meta_data_toc */
@@ -507,7 +504,7 @@ int meta_data_get_string (meta_data_t *md, /* {{{ */
     ERROR ("meta_data_get_string: md_strdup failed.");
     return (-ENOMEM);
   }
+
   pthread_mutex_unlock (&md->lock);
 
   *value = temp;
index e7993f1..e593939 100644 (file)
@@ -368,13 +368,12 @@ static int create_register_callback (llist_t **list, /* {{{ */
 {
        callback_func_t *cf;
 
-       cf = (callback_func_t *) malloc (sizeof (*cf));
+       cf = calloc (1, sizeof (*cf));
        if (cf == NULL)
        {
-               ERROR ("plugin: create_register_callback: malloc failed.");
+               ERROR ("plugin: create_register_callback: calloc failed.");
                return (-1);
        }
-       memset (cf, 0, sizeof (*cf));
 
        cf->cf_callback = callback;
        if (ud == NULL)
@@ -1244,14 +1243,13 @@ int plugin_register_read (const char *name,
        read_func_t *rf;
        int status;
 
-       rf = malloc (sizeof (*rf));
+       rf = calloc (1, sizeof (*rf));
        if (rf == NULL)
        {
-               ERROR ("plugin_register_read: malloc failed.");
+               ERROR ("plugin_register_read: calloc failed.");
                return (ENOMEM);
        }
 
-       memset (rf, 0, sizeof (read_func_t));
        rf->rf_callback = (void *) callback;
        rf->rf_udata.data = NULL;
        rf->rf_udata.free_func = NULL;
@@ -1278,14 +1276,13 @@ int plugin_register_complex_read (const char *group, const char *name,
        read_func_t *rf;
        int status;
 
-       rf = malloc (sizeof (*rf));
+       rf = calloc (1,sizeof (*rf));
        if (rf == NULL)
        {
-               ERROR ("plugin_register_complex_read: malloc failed.");
+               ERROR ("plugin_register_complex_read: calloc failed.");
                return (ENOMEM);
        }
 
-       memset (rf, 0, sizeof (read_func_t));
        rf->rf_callback = (void *) callback;
        if (group != NULL)
                sstrncpy (rf->rf_group, group, sizeof (rf->rf_group));
@@ -1351,7 +1348,7 @@ static char *plugin_flush_callback_name (const char *name)
        prefix_size = strlen(flush_prefix);
        name_size = strlen(name);
 
-       flush_name = malloc (sizeof(char) * (name_size + prefix_size + 1));
+       flush_name = malloc (name_size + prefix_size + 1);
        if (flush_name == NULL)
        {
                ERROR ("plugin_flush_callback_name: malloc failed.");
@@ -1384,7 +1381,7 @@ int plugin_register_flush (const char *name,
                if (flush_name == NULL)
                        return (-1);
 
-               cb = malloc(sizeof(flush_callback_t));
+               cb = malloc(sizeof (*cb));
                if (cb == NULL)
                {
                        ERROR ("plugin_register_flush: malloc failed.");
@@ -1477,12 +1474,12 @@ int plugin_register_data_set (const data_set_t *ds)
                        return (-1);
        }
 
-       ds_copy = (data_set_t *) malloc (sizeof (data_set_t));
+       ds_copy = malloc (sizeof (*ds_copy));
        if (ds_copy == NULL)
                return (-1);
        memcpy(ds_copy, ds, sizeof (data_set_t));
 
-       ds_copy->ds = (data_source_t *) malloc (sizeof (data_source_t)
+       ds_copy->ds = malloc (sizeof (*ds_copy->ds)
                        * ds->ds_num);
        if (ds_copy->ds == NULL)
        {
@@ -2578,13 +2575,12 @@ static int plugin_notification_meta_add (notification_t *n,
     return (-1);
   }
 
-  meta = (notification_meta_t *) malloc (sizeof (notification_meta_t));
+  meta = calloc (1, sizeof (*meta));
   if (meta == NULL)
   {
-    ERROR ("plugin_notification_meta_add: malloc failed.");
+    ERROR ("plugin_notification_meta_add: calloc failed.");
     return (-1);
   }
-  memset (meta, 0, sizeof (notification_meta_t));
 
   sstrncpy (meta->name, name, sizeof (meta->name));
   meta->type = type;
index eb50bb8..de6fce3 100644 (file)
@@ -112,12 +112,10 @@ static void parse_line (char *buf)
   if (fields[0][0] == '#')
     return;
 
-  ds = (data_set_t *) malloc (sizeof (data_set_t));
+  ds = calloc (1, sizeof (*ds));
   if (ds == NULL)
     return;
 
-  memset (ds, '\0', sizeof (data_set_t));
-
   sstrncpy (ds->type, fields[0], sizeof (ds->type));
 
   ds->ds_num = fields_num - 1;
index fcfbb94..1680c41 100644 (file)
@@ -485,7 +485,7 @@ c_avl_tree_t *c_avl_create (int (*compare) (const void *, const void *))
        if (compare == NULL)
                return (NULL);
 
-       if ((t = (c_avl_tree_t *) malloc (sizeof (c_avl_tree_t))) == NULL)
+       if ((t = malloc (sizeof (*t))) == NULL)
                return (NULL);
 
        t->root = NULL;
@@ -509,7 +509,7 @@ int c_avl_insert (c_avl_tree_t *t, void *key, void *value)
        c_avl_node_t *nptr;
        int cmp;
 
-       if ((new = (c_avl_node_t *) malloc (sizeof (c_avl_node_t))) == NULL)
+       if ((new = malloc (sizeof (*new))) == NULL)
                return (-1);
 
        new->key = key;
@@ -665,10 +665,9 @@ c_avl_iterator_t *c_avl_get_iterator (c_avl_tree_t *t)
        if (t == NULL)
                return (NULL);
 
-       iter = (c_avl_iterator_t *) malloc (sizeof (c_avl_iterator_t));
+       iter = calloc (1, sizeof (*iter));
        if (iter == NULL)
                return (NULL);
-       memset (iter, '\0', sizeof (c_avl_iterator_t));
        iter->tree = t;
 
        return (iter);
index 0756807..b5b059c 100644 (file)
@@ -83,13 +83,12 @@ static cache_entry_t *cache_alloc (size_t values_num)
 {
   cache_entry_t *ce;
 
-  ce = (cache_entry_t *) malloc (sizeof (cache_entry_t));
+  ce = calloc (1, sizeof (*ce));
   if (ce == NULL)
   {
-    ERROR ("utils_cache: cache_alloc: malloc failed.");
+    ERROR ("utils_cache: cache_alloc: calloc failed.");
     return (NULL);
   }
-  memset (ce, '\0', sizeof (cache_entry_t));
   ce->values_num = values_num;
 
   ce->values_gauge = calloc (values_num, sizeof (*ce->values_gauge));
@@ -247,7 +246,7 @@ int uc_check_timeout (void)
 
   int status;
   int i;
-  
+
   pthread_mutex_lock (&cache_lock);
 
   now = cdtime ();
@@ -499,7 +498,7 @@ int uc_get_rate_by_name (const char *name, gauge_t **ret_values, size_t *ret_val
     else
     {
       ret_num = ce->values_num;
-      ret = (gauge_t *) malloc (ret_num * sizeof (gauge_t));
+      ret = malloc (ret_num * sizeof (*ret));
       if (ret == NULL)
       {
         ERROR ("utils_cache: uc_get_rate_by_name: malloc failed.");
index 1b5dca7..19b1d5b 100644 (file)
@@ -112,14 +112,13 @@ c_heap_t *c_heap_create (int (*compare) (const void *, const void *))
   if (compare == NULL)
     return (NULL);
 
-  h = malloc (sizeof (*h));
+  h = calloc (1, sizeof (*h));
   if (h == NULL)
     return (NULL);
 
-  memset (h, 0, sizeof (*h));
   pthread_mutex_init (&h->lock, /* attr = */ NULL);
   h->compare = compare;
-  
+
   h->list = NULL;
   h->list_len = 0;
   h->list_size = 0;
@@ -174,7 +173,7 @@ int c_heap_insert (c_heap_t *h, void *ptr)
 
   /* Reorganize the heap from bottom up. */
   reheap (h, /* parent of this node = */ (index - 1) / 2, DIR_UP);
-  
+
   pthread_mutex_unlock (&h->lock);
   return (0);
 } /* int c_heap_insert */
index 1268838..79824a6 100644 (file)
@@ -27,7 +27,7 @@
  **/
 /**
  * Usage:
- * 
+ *
  * Define plugin's global pointer variable of type ignorelist_t:
  *   ignorelist_t *myconfig_ignore;
  * If you know the state of the global ignore (IgnoreSelected),
@@ -94,13 +94,12 @@ static int ignorelist_append_regex(ignorelist_t *il, const char *re_str)
        ignorelist_item_t *entry;
        int status;
 
-       re = malloc (sizeof (*re));
+       re = calloc (1, sizeof (*re));
        if (re == NULL)
        {
-               ERROR ("ignorelist_append_regex: malloc failed.");
+               ERROR ("ignorelist_append_regex: calloc failed.");
                return (ENOMEM);
        }
-       memset (re, 0, sizeof (*re));
 
        status = regcomp (re, re_str, REG_EXTENDED);
        if (status != 0)
@@ -113,15 +112,14 @@ static int ignorelist_append_regex(ignorelist_t *il, const char *re_str)
                return (status);
        }
 
-       entry = malloc (sizeof (*entry));
+       entry = calloc (1, sizeof (*entry));
        if (entry == NULL)
        {
-               ERROR ("ignorelist_append_regex: malloc failed.");
+               ERROR ("ignorelist_append_regex: calloc failed.");
                regfree (re);
                sfree (re);
                return (ENOMEM);
        }
-       memset (entry, 0, sizeof (*entry));
        entry->rmatch = re;
 
        ignorelist_append (il, entry);
@@ -134,12 +132,11 @@ static int ignorelist_append_string(ignorelist_t *il, const char *entry)
        ignorelist_item_t *new;
 
        /* create new entry */
-       if ((new = malloc(sizeof(ignorelist_item_t))) == NULL )
+       if ((new = calloc(1, sizeof (*new))) == NULL )
        {
                ERROR ("cannot allocate new entry");
                return (1);
        }
-       memset (new, '\0', sizeof(ignorelist_item_t));
        new->smatch = sstrdup(entry);
 
        /* append new entry */
@@ -194,10 +191,9 @@ ignorelist_t *ignorelist_create (int invert)
 {
        ignorelist_t *il;
 
-       il = malloc (sizeof (*il));
+       il = calloc (1, sizeof (*il));
        if (il == NULL)
                return NULL;
-       memset (il, 0, sizeof (*il));
 
        /*
         * ->ignore == 0  =>  collect
index 4265286..1a6188f 100644 (file)
@@ -48,12 +48,10 @@ llist_t *llist_create (void)
 {
        llist_t *ret;
 
-       ret = (llist_t *) malloc (sizeof (llist_t));
+       ret = calloc (1, sizeof (*ret));
        if (ret == NULL)
                return (NULL);
 
-       memset (ret, '\0', sizeof (llist_t));
-
        return (ret);
 }
 
@@ -78,7 +76,7 @@ llentry_t *llentry_create (char *key, void *value)
 {
        llentry_t *e;
 
-       e = (llentry_t *) malloc (sizeof (llentry_t));
+       e = malloc (sizeof (*e));
        if (e)
        {
                e->key   = key;
index 5083b05..cf87b6b 100644 (file)
@@ -63,7 +63,7 @@ static char *match_substr (const char *str, int begin, int end)
   }
 
   ret_len = end - begin;
-  ret = (char *) malloc (sizeof (char) * (ret_len + 1));
+  ret = malloc (ret_len + 1);
   if (ret == NULL)
   {
     ERROR ("utils_match: match_substr: malloc failed.");
@@ -238,10 +238,9 @@ cu_match_t *match_create_callback (const char *regex, const char *excluderegex,
   DEBUG ("utils_match: match_create_callback: regex = %s, excluderegex = %s",
         regex, excluderegex);
 
-  obj = (cu_match_t *) malloc (sizeof (cu_match_t));
+  obj = calloc (1, sizeof (*obj));
   if (obj == NULL)
     return (NULL);
-  memset (obj, '\0', sizeof (cu_match_t));
 
   status = regcomp (&obj->regex, regex, REG_EXTENDED | REG_NEWLINE);
   if (status != 0)
@@ -275,10 +274,9 @@ cu_match_t *match_create_simple (const char *regex,
   cu_match_value_t *user_data;
   cu_match_t *obj;
 
-  user_data = (cu_match_value_t *) malloc (sizeof (cu_match_value_t));
+  user_data = calloc (1, sizeof (*user_data));
   if (user_data == NULL)
     return (NULL);
-  memset (user_data, '\0', sizeof (cu_match_value_t));
   user_data->ds_type = match_ds_type;
 
   obj = match_create_callback (regex, excluderegex,
index 548d1d8..fee0871 100644 (file)
  *   Florian Forster <octo at collectd.org>
  **/
 
-#include <pthread.h>
-
 #include "collectd.h"
 #include "utils_time.h"
 #include "utils_random.h"
 
+#include <pthread.h>
+
 
 static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
 static _Bool have_seed = 0;
index cfa1c76..9284f73 100644 (file)
@@ -102,7 +102,7 @@ char *asubst (const char *string, int off1, int off2, const char *replacement)
 
        len = off1 + strlen (replacement) + strlen (string) - off2 + 1;
 
-       buf = (char *)malloc (len);
+       buf = malloc (len);
        if (NULL == buf)
                return NULL;
 
index ec2e351..953ccc4 100644 (file)
@@ -36,11 +36,11 @@ kstat_ctl_t *kc;
 DEF_TEST(subst)
 {
   struct {
-    char *str;
+    const char *str;
     int off1;
     int off2;
-    char *rplmt;
-    char *want;
+    const char *rplmt;
+    const char *want;
   } cases[] = {
     {"foo_____bar", 3, 8, " - ", "foo - bar"}, /* documentation example */
     {"foo bar", 0, 2, "m",     "mo bar"},    /* beginning, shorten */
@@ -95,7 +95,10 @@ DEF_TEST(subst)
 DEF_TEST(subst_string)
 {
   struct {
-    char *str;          char *srch; char *rplmt; char *want;
+    const char *str;
+    const char *srch;
+    const char *rplmt;
+    const char *want;
   } cases[] = {
     {"Hello %{name}",    "%{name}", "world", "Hello world"},
     {"abcccccc",         "abc",     "cab",   "ccccccab"},
index fe5dca8..0b0a8fb 100644 (file)
@@ -119,10 +119,9 @@ cu_tail_t *cu_tail_create (const char *file)
 {
        cu_tail_t *obj;
 
-       obj = (cu_tail_t *) malloc (sizeof (cu_tail_t));
+       obj = calloc (1, sizeof (*obj));
        if (obj == NULL)
                return (NULL);
-       memset (obj, '\0', sizeof (cu_tail_t));
 
        obj->file = strdup (file);
        if (obj->file == NULL)
index 8776ad1..1e5da95 100644 (file)
@@ -126,10 +126,9 @@ cu_tail_match_t *tail_match_create (const char *filename)
 {
   cu_tail_match_t *obj;
 
-  obj = (cu_tail_match_t *) malloc (sizeof (cu_tail_match_t));
+  obj = calloc (1, sizeof (*obj));
   if (obj == NULL)
     return (NULL);
-  memset (obj, '\0', sizeof (cu_tail_match_t));
 
   obj->tail = cu_tail_create (filename);
   if (obj->tail == NULL)
@@ -212,13 +211,12 @@ int tail_match_add_match_simple (cu_tail_match_t *obj,
   if (match == NULL)
     return (-1);
 
-  user_data = (cu_tail_match_simple_t *) malloc (sizeof (cu_tail_match_simple_t));
+  user_data = calloc (1, sizeof (*user_data));
   if (user_data == NULL)
   {
     match_destroy (match);
     return (-1);
   }
-  memset (user_data, '\0', sizeof (cu_tail_match_simple_t));
 
   sstrncpy (user_data->plugin, plugin, sizeof (user_data->plugin));
   if (plugin_instance != NULL)
index bf097fa..a5c3373 100644 (file)
@@ -59,7 +59,7 @@ threshold_t *threshold_get (const char *hostname,
 
 threshold_t *threshold_search (const value_list_t *vl);
 
-int ut_search_threshold (const value_list_t *vl, 
+int ut_search_threshold (const value_list_t *vl,
   threshold_t *ret_threshold);
 
 #endif /* UTILS_THRESHOLD_H */
index 46faa9c..4d88dcc 100644 (file)
@@ -43,7 +43,7 @@ extern cdtime_t cdtime_mock;
  * manner is that comparing times and calculating differences is as simple as
  * it is with "time_t", i.e. a simple integer comparison / subtraction works.
  */
-/* 
+/*
  * cdtime_t is defined in "collectd.h" */
 /* typedef uint64_t cdtime_t; */
 
index 94d0762..655581e 100644 (file)
--- a/src/dbi.c
+++ b/src/dbi.c
@@ -148,7 +148,7 @@ static int cdbi_result_get_field (dbi_result res, /* {{{ */
   else if (src_type == DBI_TYPE_STRING)
   {
     const char *value;
-    
+
     value = dbi_result_get_string_idx (res, index);
     if (value == NULL)
       sstrncpy (buffer, "", buffer_size);
@@ -214,7 +214,7 @@ static void cdbi_database_free (cdbi_database_t *db) /* {{{ */
  *     </Result>
  *     ...
  *   </Query>
- *     
+ *
  *   <Database "plugin_instance1">
  *     Driver "mysql"
  *     Interval 120
@@ -294,13 +294,12 @@ static int cdbi_config_add_database (oconfig_item_t *ci) /* {{{ */
     return (-1);
   }
 
-  db = (cdbi_database_t *) malloc (sizeof (*db));
+  db = calloc (1, sizeof (*db));
   if (db == NULL)
   {
-    ERROR ("dbi plugin: malloc failed.");
+    ERROR ("dbi plugin: calloc failed.");
     return (-1);
   }
-  memset (db, 0, sizeof (*db));
 
   status = cf_util_get_string (ci, &db->name);
   if (status != 0)
@@ -357,12 +356,11 @@ static int cdbi_config_add_database (oconfig_item_t *ci) /* {{{ */
   while ((status == 0) && (db->queries_num > 0))
   {
     size_t j;
-    db->q_prep_areas = (udb_query_preparation_area_t **) calloc (
-        db->queries_num, sizeof (*db->q_prep_areas));
 
+    db->q_prep_areas = calloc (db->queries_num, sizeof (*db->q_prep_areas));
     if (db->q_prep_areas == NULL)
     {
-      WARNING ("dbi plugin: malloc failed");
+      WARNING ("dbi plugin: calloc failed");
       status = -1;
       break;
     }
@@ -548,35 +546,33 @@ static int cdbi_read_database_query (cdbi_database_t *db, /* {{{ */
   }
 
   /* Allocate `column_names' and `column_values'. {{{ */
-  column_names = (char **) calloc (column_num, sizeof (char *));
+  column_names = calloc (column_num, sizeof (*column_names));
   if (column_names == NULL)
   {
-    ERROR ("dbi plugin: malloc failed.");
+    ERROR ("dbi plugin: calloc failed.");
     BAIL_OUT (-1);
   }
 
-  column_names[0] = (char *) calloc (column_num,
-      DATA_MAX_NAME_LEN * sizeof (char));
+  column_names[0] = calloc (column_num, DATA_MAX_NAME_LEN);
   if (column_names[0] == NULL)
   {
-    ERROR ("dbi plugin: malloc failed.");
+    ERROR ("dbi plugin: calloc failed.");
     BAIL_OUT (-1);
   }
   for (i = 1; i < column_num; i++)
     column_names[i] = column_names[i - 1] + DATA_MAX_NAME_LEN;
 
-  column_values = (char **) calloc (column_num, sizeof (char *));
+  column_values = calloc (column_num, sizeof (*column_values));
   if (column_values == NULL)
   {
-    ERROR ("dbi plugin: malloc failed.");
+    ERROR ("dbi plugin: calloc failed.");
     BAIL_OUT (-1);
   }
 
-  column_values[0] = (char *) calloc (column_num,
-      DATA_MAX_NAME_LEN * sizeof (char));
+  column_values[0] = calloc (column_num, DATA_MAX_NAME_LEN);
   if (column_values[0] == NULL)
   {
-    ERROR ("dbi plugin: malloc failed.");
+    ERROR ("dbi plugin: calloc failed.");
     BAIL_OUT (-1);
   }
   for (i = 1; i < column_num; i++)
index b60fefa..85b2329 100644 (file)
@@ -389,7 +389,7 @@ static signed long long dict_get_value (CFDictionaryRef dict, const char *key)
                DEBUG ("CFStringCreateWithCString (%s) failed.", key);
                return (-1LL);
        }
-       
+
        /* get => we don't need to release (== free) the object */
        val_obj = (CFNumberRef) CFDictionaryGetValue (dict, key_obj);
 
@@ -637,7 +637,7 @@ static int disk_read (void)
 #elif KERNEL_LINUX
        FILE *fh;
        char buffer[1024];
-       
+
        char *fields[32];
        int numfields;
        int fieldshift = 0;
@@ -936,10 +936,10 @@ static int disk_read (void)
 #endif
        int counter;
        char name[DATA_MAX_NAME_LEN];
-       
+
        if ((ds = sg_get_disk_io_stats(&disks)) == NULL)
                return (0);
-               
+
        for (counter=0; counter < disks; counter++) {
                strncpy(name, ds->disk_name, sizeof(name));
                name[sizeof(name)-1] = '\0'; /* strncpy doesn't terminate longer strings */
@@ -959,7 +959,7 @@ static int disk_read (void)
        int rnumdisk;
        int i;
 
-       if ((numdisk = perfstat_disk(NULL, NULL, sizeof(perfstat_disk_t), 0)) < 0) 
+       if ((numdisk = perfstat_disk(NULL, NULL, sizeof(perfstat_disk_t), 0)) < 0)
        {
                char errbuf[1024];
                WARNING ("disk plugin: perfstat_disk: %s",
@@ -968,14 +968,14 @@ static int disk_read (void)
        }
 
        if (numdisk != pnumdisk || stat_disk==NULL) {
-               if (stat_disk!=NULL) 
+               if (stat_disk!=NULL)
                        free(stat_disk);
                stat_disk = (perfstat_disk_t *)calloc(numdisk, sizeof(perfstat_disk_t));
-       } 
+       }
        pnumdisk = numdisk;
 
        firstpath.name[0]='\0';
-       if ((rnumdisk = perfstat_disk(&firstpath, stat_disk, sizeof(perfstat_disk_t), numdisk)) < 0) 
+       if ((rnumdisk = perfstat_disk(&firstpath, stat_disk, sizeof(perfstat_disk_t), numdisk)) < 0)
        {
                char errbuf[1024];
                WARNING ("disk plugin: perfstat_disk : %s",
@@ -983,7 +983,7 @@ static int disk_read (void)
                return (-1);
        }
 
-       for (i = 0; i < rnumdisk; i++) 
+       for (i = 0; i < rnumdisk; i++)
        {
                read_sectors = stat_disk[i].rblks*stat_disk[i].bsize;
                write_sectors = stat_disk[i].wblks*stat_disk[i].bsize;
index 3421c47..53fa725 100644 (file)
--- a/src/dns.c
+++ b/src/dns.c
@@ -94,11 +94,10 @@ static counter_list_t *counter_list_create (counter_list_t **list,
 {
        counter_list_t *entry;
 
-       entry = (counter_list_t *) malloc (sizeof (counter_list_t));
+       entry = calloc (1, sizeof (*entry));
        if (entry == NULL)
                return (NULL);
 
-       memset (entry, 0, sizeof (counter_list_t));
        entry->key = key;
        entry->value = value;
 
index d46bb02..f029894 100644 (file)
@@ -28,7 +28,7 @@
  See: http://www.drbd.org/users-guide/ch-admin.html#s-performance-indicators
 
  version: 8.3.11 (api:88/proto:86-96)
- srcversion: 71955441799F513ACA6DA60 
+ srcversion: 71955441799F513ACA6DA60
   0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate B r-----
         ns:64363752 nr:0 dw:357799284 dr:846902273 al:34987022 bm:18062 lo:0 \
                                                pe:0 ua:0 ap:0 ep:1 wo:f oos:0
index 81ae29c..ea4e785 100644 (file)
@@ -219,7 +219,7 @@ static int email_config (const char *key, const char *value)
 static void type_list_incr (type_list_t *list, char *name, int incr)
 {
        if (NULL == list->head) {
-               list->head = (type_t *)smalloc (sizeof (type_t));
+               list->head = smalloc (sizeof (*list->head));
 
                list->head->name  = sstrdup (name);
                list->head->value = incr;
@@ -236,7 +236,7 @@ static void type_list_incr (type_list_t *list, char *name, int incr)
                }
 
                if (NULL == ptr) {
-                       list->tail->next = (type_t *)smalloc (sizeof (type_t));
+                       list->tail->next = smalloc (sizeof (*list->tail->next));
                        list->tail = list->tail->next;
 
                        list->tail->name  = sstrdup (name);
@@ -482,10 +482,10 @@ static void *open_connection (void __attribute__((unused)) *arg)
                available_collectors = max_conns;
 
                collectors =
-                       (collector_t **)smalloc (max_conns * sizeof (collector_t *));
+                       smalloc (max_conns * sizeof (*collectors));
 
                for (i = 0; i < max_conns; ++i) {
-                       collectors[i] = (collector_t *)smalloc (sizeof (collector_t));
+                       collectors[i] = smalloc (sizeof (*collectors[i]));
                        collectors[i]->socket = NULL;
 
                        if (0 != (err = plugin_thread_create (&collectors[i]->thread,
@@ -537,13 +537,12 @@ static void *open_connection (void __attribute__((unused)) *arg)
                        break;
                }
 
-               connection = malloc (sizeof (*connection));
+               connection = calloc (1, sizeof (*connection));
                if (connection == NULL)
                {
                        close (remote);
                        continue;
                }
-               memset (connection, 0, sizeof (*connection));
 
                connection->socket = fdopen (remote, "r");
                connection->next   = NULL;
@@ -695,7 +694,7 @@ static void copy_type_list (type_list_t *l1, type_list_t *l2)
        for (ptr1 = l1->head, ptr2 = l2->head; NULL != ptr1;
                        ptr1 = ptr1->next, last = ptr2, ptr2 = ptr2->next) {
                if (NULL == ptr2) {
-                       ptr2 = (type_t *)smalloc (sizeof (type_t));
+                       ptr2 = smalloc (sizeof (*ptr2));
                        ptr2->name = NULL;
                        ptr2->next = NULL;
 
index dec14f3..8971f4d 100644 (file)
@@ -104,14 +104,13 @@ static int ethstat_add_map (const oconfig_item_t *ci) /* {{{ */
     return (ENOMEM);
   }
 
-  map = malloc (sizeof (*map));
+  map = calloc (1, sizeof (*map));
   if (map == NULL)
   {
     sfree (key);
-    ERROR ("ethstat plugin: malloc(3) failed.");
+    ERROR ("ethstat plugin: calloc failed.");
     return (ENOMEM);
   }
-  memset (map, 0, sizeof (*map));
 
   sstrncpy (map->type, ci->values[1].value.string, sizeof (map->type));
   if (ci->values_num == 3)
@@ -273,7 +272,7 @@ static int ethstat_read_interface (char *device)
     close (fd);
     sfree (strings);
     sfree (stats);
-    ERROR("ethstat plugin: malloc(3) failed.");
+    ERROR("ethstat plugin: malloc failed.");
     return (-1);
   }
 
index f080ad6..85f6cb8 100644 (file)
@@ -126,13 +126,12 @@ static int exec_config_exec (oconfig_item_t *ci) /* {{{ */
     return (-1);
   }
 
-  pl = (program_list_t *) malloc (sizeof (program_list_t));
+  pl = calloc (1, sizeof (*pl));
   if (pl == NULL)
   {
-    ERROR ("exec plugin: malloc failed.");
+    ERROR ("exec plugin: calloc failed.");
     return (-1);
   }
-  memset (pl, '\0', sizeof (program_list_t));
 
   if (strcasecmp ("NotificationExec", ci->key) == 0)
     pl->flags |= PL_NOTIF_ACTION;
@@ -163,16 +162,15 @@ static int exec_config_exec (oconfig_item_t *ci) /* {{{ */
     return (-1);
   }
 
-  pl->argv = (char **) malloc (ci->values_num * sizeof (char *));
+  pl->argv = calloc (ci->values_num, sizeof (*pl->argv));
   if (pl->argv == NULL)
   {
-    ERROR ("exec plugin: malloc failed.");
+    ERROR ("exec plugin: calloc failed.");
     sfree (pl->exec);
     sfree (pl->user);
     sfree (pl);
     return (-1);
   }
-  memset (pl->argv, '\0', ci->values_num * sizeof (char *));
 
   {
     char *tmp = strrchr (ci->values[1].value.string, '/');
@@ -184,7 +182,7 @@ static int exec_config_exec (oconfig_item_t *ci) /* {{{ */
   pl->argv[0] = strdup (buffer);
   if (pl->argv[0] == NULL)
   {
-    ERROR ("exec plugin: malloc failed.");
+    ERROR ("exec plugin: strdup failed.");
     sfree (pl->argv);
     sfree (pl->exec);
     sfree (pl->user);
@@ -869,8 +867,7 @@ static int exec_notification (const notification_t *n, /* {{{ */
     if (pl->pid != 0)
       continue;
 
-    pln = (program_list_and_notification_t *) malloc (sizeof
-        (program_list_and_notification_t));
+    pln = malloc (sizeof (*pln));
     if (pln == NULL)
     {
       ERROR ("exec plugin: malloc failed.");
index 9ea8af7..270e5d0 100644 (file)
@@ -23,7 +23,7 @@
 
 #include "collectd.h"
 #include "common.h"
-#include "plugin.h"       
+#include "plugin.h"
 
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -344,13 +344,12 @@ 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)
@@ -542,7 +541,7 @@ static int fc_read_dir (fc_directory_conf_t *dir)
 
   if (dir->mtime != 0)
     dir->now = time (NULL);
-    
+
   status = walk_directory (dir->path, fc_read_dir_callback, dir,
       /* include hidden */ (dir->options & FC_HIDDEN) ? 1 : 0);
   if (status != 0)
index f86d8f7..1aa95d5 100644 (file)
@@ -454,10 +454,9 @@ static staging_entry_t *staging_entry_get (const char *host, /* {{{ */
     return (se);
 
   /* insert new entry */
-  se = (staging_entry_t *) malloc (sizeof (*se));
+  se = calloc (1, sizeof (*se));
   if (se == NULL)
     return (NULL);
-  memset (se, 0, sizeof (*se));
 
   sstrncpy (se->key, key, sizeof (se->key));
   se->flags = 0;
@@ -913,7 +912,7 @@ static int mc_receive_thread_stop (void) /* {{{ */
   return (0);
 } /* }}} int mc_receive_thread_stop */
 
-/* 
+/*
  * Config:
  *
  * <Plugin gmond>
index 90dc139..d05dd72 100644 (file)
@@ -368,9 +368,8 @@ static int interface_read (void)
 
        if (pnif != nif || ifstat == NULL)
        {
-               if (ifstat != NULL)
-                       free(ifstat);
-               ifstat = malloc(nif * sizeof(perfstat_netinterface_t));
+               free(ifstat);
+               ifstat = malloc(nif * sizeof (*ifstat));
        }
        pnif = nif;
 
index b403847..00b3a5f 100644 (file)
--- a/src/ipc.c
+++ b/src/ipc.c
@@ -213,7 +213,7 @@ static caddr_t ipc_get_info (cid_t cid, int cmd, int version, int stsize, int *n
 
   *nmemb = size / stsize;
 
-  buff = (caddr_t)malloc (size);
+  buff = malloc (size);
   if (buff == NULL)  {
     ERROR ("ipc plugin: ipc_get_info malloc failed.");
     return (NULL);
@@ -298,7 +298,7 @@ static int ipc_read_msg (void) /* {{{ */
     msg_alloc_queues++;
     msg_used_space += ipcinfo_msg[i].msg_cbytes;
     msg_qnum += ipcinfo_msg[i].msg_qnum;
-
+  }
   free(ipcinfo_msg);
 
   ipc_submit_g("msg", "count", "queues", msg_alloc_queues);
index 51d33dc..76dd9cb 100644 (file)
@@ -279,7 +279,7 @@ static int sensor_list_add (ipmi_sensor_t *sensor)
     {
       /* `sensor_id_ptr' now points to "(123)". */
       ssnprintf (sensor_name, sizeof (sensor_name),
-          "%s %s", sensor_name_ptr, sensor_id_ptr); 
+          "%s %s", sensor_name_ptr, sensor_id_ptr);
     }
     /* else: don't touch sensor_name. */
   }
index 05e3e24..1e35851 100644 (file)
@@ -215,7 +215,7 @@ static int iptables_config (const char *key, const char *value)
     }
 
     chain_list = list;
-    final = (ip_chain_t *) malloc( sizeof(temp) );
+    final = malloc(sizeof (*final));
     if (final == NULL)
     {
         char errbuf[1024];
index 6b92f54..50cd696 100644 (file)
@@ -1801,14 +1801,13 @@ static cjni_callback_info_t *cjni_callback_info_create (JNIEnv *jvm_env, /* {{{
     return (NULL);
   }
 
-  cbi = (cjni_callback_info_t *) malloc (sizeof (*cbi));
+  cbi = calloc (1, sizeof (*cbi));
   if (cbi == NULL)
   {
-    ERROR ("java plugin: cjni_callback_info_create: malloc failed.");
+    ERROR ("java plugin: cjni_callback_info_create: calloc failed.");
     (*jvm_env)->ReleaseStringUTFChars (jvm_env, o_name, c_name);
     return (NULL);
   }
-  memset (cbi, 0, sizeof (*cbi));
   cbi->type = type;
 
   cbi->name = strdup (c_name);
@@ -2067,13 +2066,12 @@ static JNIEnv *cjni_thread_attach (void) /* {{{ */
   if (cjni_env == NULL)
   {
     /* This pointer is free'd in `cjni_jvm_env_destroy'. */
-    cjni_env = (cjni_jvm_env_t *) malloc (sizeof (*cjni_env));
+    cjni_env = calloc (1, sizeof (*cjni_env));
     if (cjni_env == NULL)
     {
-      ERROR ("java plugin: cjni_thread_attach: malloc failed.");
+      ERROR ("java plugin: cjni_thread_attach: calloc failed.");
       return (NULL);
     }
-    memset (cjni_env, 0, sizeof (*cjni_env));
     cjni_env->reference_counter = 0;
     cjni_env->jvm_env = NULL;
 
@@ -2801,13 +2799,13 @@ static int cjni_match_target_create (const oconfig_item_t *ci, /* {{{ */
 
   /* Allocate a new callback info structure. This is going to be our user_data
    * pointer. */
-  cbi_ret = (cjni_callback_info_t *) malloc (sizeof (*cbi_ret));
+  cbi_ret = calloc (1, sizeof (*cbi_ret));
   if (cbi_ret == NULL)
   {
-    ERROR ("java plugin: cjni_match_target_create: malloc failed.");
+    ERROR ("java plugin: cjni_match_target_create: calloc failed.");
     BAIL_OUT (-1);
   }
-  memset (cbi_ret, 0, sizeof (*cbi_ret));
+
   cbi_ret->object = NULL;
   cbi_ret->type = type;
 
index 77819c2..8b5ac0b 100644 (file)
@@ -312,7 +312,7 @@ static int lcc_receive (lcc_connection_t *c, /* {{{ */
   /* Allocate space for the char-pointers */
   res.lines_num = (size_t) res.status;
   res.status = 0;
-  res.lines = (char **) malloc (res.lines_num * sizeof (char *));
+  res.lines = malloc (res.lines_num * sizeof (*res.lines));
   if (res.lines == NULL)
   {
     lcc_set_errno (c, ENOMEM);
@@ -584,10 +584,9 @@ int lcc_connect (const char *address, lcc_connection_t **ret_con) /* {{{ */
   if (ret_con == NULL)
     return (-1);
 
-  c = (lcc_connection_t *) malloc (sizeof (*c));
+  c = calloc (1, sizeof (*c));
   if (c == NULL)
     return (-1);
-  memset (c, 0, sizeof (*c));
 
   status = lcc_open_socket (c, address);
   if (status != 0)
@@ -687,7 +686,7 @@ int lcc_getval (lcc_connection_t *c, lcc_identifier_t *ident, /* {{{ */
   /* Allocate space for the values */
   if (ret_values != NULL)
   {
-    values = (gauge_t *) malloc (values_num * sizeof (*values));
+    values = malloc (values_num * sizeof (*values));
     if (values == NULL)
       BAIL_OUT (ENOMEM);
   }
@@ -894,7 +893,7 @@ int lcc_listval (lcc_connection_t *c, /* {{{ */
   }
 
   ident_num = res.lines_num;
-  ident = (lcc_identifier_t *) malloc (ident_num * sizeof (*ident));
+  ident = malloc (ident_num * sizeof (*ident));
   if (ident == NULL)
   {
     lcc_response_free (&res);
index 049f7f0..64cf9c9 100644 (file)
@@ -56,7 +56,7 @@ typedef enum lcc_security_level_e lcc_security_level_t;
 lcc_network_t *lcc_network_create (void);
 void lcc_network_destroy (lcc_network_t *net);
 
-/* 
+/*
  * Add servers
  */
 lcc_server_t *lcc_server_create (lcc_network_t *net,
index 7a866ee..4564fbb 100644 (file)
@@ -271,10 +271,9 @@ lcc_network_t *lcc_network_create (void) /* {{{ */
 {
   lcc_network_t *net;
 
-  net = malloc (sizeof (*net));
+  net = calloc (1, sizeof (*net));
   if (net == NULL)
     return (NULL);
-  memset (net, 0, sizeof (*net));
 
   net->servers = NULL;
 
@@ -299,10 +298,9 @@ lcc_server_t *lcc_server_create (lcc_network_t *net, /* {{{ */
   if (service == NULL)
     service = NET_DEFAULT_PORT;
 
-  srv = malloc (sizeof (*srv));
+  srv = calloc (1, sizeof (*srv));
   if (srv == NULL)
     return (NULL);
-  memset (srv, 0, sizeof (*srv));
 
   srv->fd = -1;
   srv->security_level = NONE;
index 343c285..130da23 100644 (file)
@@ -651,19 +651,17 @@ lcc_network_buffer_t *lcc_network_buffer_create (size_t size) /* {{{ */
     return (NULL);
   }
 
-  nb = malloc (sizeof (*nb));
+  nb = calloc (1, sizeof (*nb));
   if (nb == NULL)
     return (NULL);
-  memset (nb, 0, sizeof (*nb));
 
   nb->size = size;
-  nb->buffer = malloc (nb->size);
+  nb->buffer = calloc (1, nb->size);
   if (nb->buffer == NULL)
   {
     free (nb);
     return (NULL);
   }
-  memset (nb->buffer, 0, nb->size);
 
   nb->ptr = nb->buffer;
   nb->free = nb->size;
index 89ccdec..ca7f958 100644 (file)
@@ -106,13 +106,12 @@ oconfig_item_t *oconfig_clone (const oconfig_item_t *ci_orig)
 {
   oconfig_item_t *ci_copy;
 
-  ci_copy = (oconfig_item_t *) malloc (sizeof (*ci_copy));
+  ci_copy = calloc (1, sizeof (*ci_copy));
   if (ci_copy == NULL)
   {
-    fprintf (stderr, "malloc failed.\n");
+    fprintf (stderr, "calloc failed.\n");
     return (NULL);
   }
-  memset (ci_copy, 0, sizeof (*ci_copy));
   ci_copy->values = NULL;
   ci_copy->parent = NULL;
   ci_copy->children = NULL;
@@ -177,7 +176,7 @@ oconfig_item_t *oconfig_clone (const oconfig_item_t *ci_orig)
     for (i = 0; i < ci_copy->children_num; i++)
     {
       oconfig_item_t *child;
-      
+
       child = oconfig_clone (ci_orig->children + i);
       if (child == NULL)
       {
index 803eec2..1eb7aec 100644 (file)
@@ -208,15 +208,13 @@ statement_list:
 entire_file:
        statement_list
        {
-        ci_root = malloc (sizeof (oconfig_item_t));
-        memset (ci_root, '\0', sizeof (oconfig_item_t));
+        ci_root = calloc (1, sizeof (*ci_root));
         ci_root->children = $1.statement;
         ci_root->children_num = $1.statement_num;
        }
        | /* epsilon */
        {
-        ci_root = malloc (sizeof (oconfig_item_t));
-        memset (ci_root, '\0', sizeof (oconfig_item_t));
+        ci_root = calloc (1, sizeof (*ci_root));
         ci_root->children = NULL;
         ci_root->children_num = 0;
        }
index d0b2f83..949724e 100644 (file)
@@ -23,7 +23,7 @@
 
 
 /**
- * There are several data streams provided by Madwifi plugin, some are 
+ * There are several data streams provided by Madwifi plugin, some are
  * connected to network interface, some are connected to each node
  * associated to that interface. Nodes represents other sides in
  * wireless communication, for example on network interface in AP mode,
  *     node_stat       Node statistic counters
  *
  * Both statistic counters have type instances for each counter returned
- * by Madwifi. See madwifi.h for content of ieee80211_nodestats, 
+ * by Madwifi. See madwifi.h for content of ieee80211_nodestats,
  * ieee80211_stats and ath_stats structures. Type instances use the same
  * name as fields in these structures (like ns_rx_dup). Some fields are
  * not reported, because they are not counters (like ns_tx_deauth_code
  * or ast_tx_rssi). Fields ns_rx_bytes and ns_tx_bytes are reported as
  * node_octets data stream instead of type instance of node_stat.
  * Statistics are not logged when they are zero.
- * 
+ *
  * There are two sets of these counters - the first 'WatchList' is a
  * set of counters that are individually logged. The second 'MiscList'
  * is a set of counters that are summed together and the sum is logged.
- * By default, the most important statistics are in the WatchList and 
+ * By default, the most important statistics are in the WatchList and
  * many error statistics are in MiscList. There are also many statistics
  * that are not in any of these sets, so they are not monitored by default.
  * It is possible to alter these lists using configuration options:
@@ -629,7 +629,7 @@ process_stat_struct (int which, const void *ptr, const char *dev, const char *ma
                if (item_summed (i))
                        misc += val;
        }
-       
+
        if (misc != 0)
                submit_derive (dev, type_name, misc_name, mac, misc);
 
@@ -891,7 +891,7 @@ procfs_iterate(int sk)
        int status;
        int num_success;
        int num_fail;
-       
+
        if ((fh = fopen ("/proc/net/dev", "r")) == NULL)
        {
                WARNING ("madwifi plugin: opening /proc/net/dev failed");
@@ -953,7 +953,7 @@ static int madwifi_read (void)
 
 /* procfs iteration is not safe because it does not check whether given
    interface is madwifi interface and there are private ioctls used, which
-   may do something completely different on non-madwifi devices.   
+   may do something completely different on non-madwifi devices.
    Therefore, it is not used unless explicitly enabled (and should be used
    together with ignorelist). */
 
index e30ff91..8f99a6d 100644 (file)
@@ -46,13 +46,12 @@ static int mec_create (const oconfig_item_t *ci, void **user_data) /* {{{ */
 {
   mec_match_t *m;
 
-  m = (mec_match_t *) malloc (sizeof (*m));
+  m = calloc (1, sizeof (*m));
   if (m == NULL)
   {
-    ERROR ("mec_create: malloc failed.");
+    ERROR ("mec_create: calloc failed.");
     return (-ENOMEM);
   }
-  memset (m, 0, sizeof (*m));
 
   if (ci->children_num != 0)
   {
index ba0c47c..4178d75 100644 (file)
@@ -101,13 +101,12 @@ static int mh_create (const oconfig_item_t *ci, void **user_data) /* {{{ */
   mh_match_t *m;
   int i;
 
-  m = (mh_match_t *) malloc (sizeof (*m));
+  m = calloc (1, sizeof (*m));
   if (m == NULL)
   {
-    ERROR ("mh_create: malloc failed.");
+    ERROR ("mh_create: calloc failed.");
     return (-ENOMEM);
   }
-  memset (m, 0, sizeof (*m));
 
   for (i = 0; i < ci->children_num; i++)
   {
index 4fa6ce7..bbc35cd 100644 (file)
@@ -140,13 +140,12 @@ static int mr_config_add_regex (mr_regex_t **re_head, /* {{{ */
                return (-1);
        }
 
-       re = (mr_regex_t *) malloc (sizeof (*re));
+       re = calloc (1, sizeof (*re));
        if (re == NULL)
        {
-               log_err ("mr_config_add_regex: malloc failed.");
+               log_err ("mr_config_add_regex: calloc failed.");
                return (-1);
        }
-       memset (re, 0, sizeof (*re));
        re->next = NULL;
 
        re->re_str = strdup (ci->values[0].value.string);
@@ -163,7 +162,7 @@ static int mr_config_add_regex (mr_regex_t **re_head, /* {{{ */
                char errmsg[1024];
                regerror (status, &re->re, errmsg, sizeof (errmsg));
                errmsg[sizeof (errmsg) - 1] = 0;
-               log_err ("Compiling regex `%s' for `%s' failed: %s.", 
+               log_err ("Compiling regex `%s' for `%s' failed: %s.",
                                re->re_str, ci->key, errmsg);
                free (re->re_str);
                free (re);
@@ -194,14 +193,13 @@ static int mr_create (const oconfig_item_t *ci, void **user_data) /* {{{ */
        int status;
        int i;
 
-       m = (mr_match_t *) malloc (sizeof (*m));
+       m = calloc (1, sizeof (*m));
        if (m == NULL)
        {
-               log_err ("mr_create: malloc failed.");
+               log_err ("mr_create: calloc failed.");
                return (-ENOMEM);
        }
-       memset (m, 0, sizeof (*m));
-       
+
        m->invert = 0;
 
        status = 0;
index 996201a..77c8f51 100644 (file)
@@ -52,13 +52,12 @@ static int mt_create (const oconfig_item_t *ci, void **user_data) /* {{{ */
   int status;
   int i;
 
-  m = (mt_match_t *) malloc (sizeof (*m));
+  m = calloc (1, sizeof (*m));
   if (m == NULL)
   {
-    ERROR ("mt_create: malloc failed.");
+    ERROR ("mt_create: calloc failed.");
     return (-ENOMEM);
   }
-  memset (m, 0, sizeof (*m));
 
   m->future = 0;
   m->past = 0;
index 9ffceca..64e1136 100644 (file)
@@ -59,7 +59,7 @@ struct mv_match_s
 static void mv_free_match (mv_match_t *m) /* {{{ */
 {
   size_t i;
-  
+
   if (m == NULL)
     return;
 
@@ -69,7 +69,7 @@ static void mv_free_match (mv_match_t *m) /* {{{ */
       free(m->data_sources[i]);
     free(m->data_sources);
   }
-  
+
   free (m);
 } /* }}} void mv_free_match */
 
@@ -200,13 +200,12 @@ static int mv_create (const oconfig_item_t *ci, void **user_data) /* {{{ */
   int status;
   int i;
 
-  m = (mv_match_t *) malloc (sizeof (*m));
+  m = calloc (1, sizeof (*m));
   if (m == NULL)
   {
-    ERROR ("mv_create: malloc failed.");
+    ERROR ("mv_create: calloc failed.");
     return (-ENOMEM);
   }
-  memset (m, 0, sizeof (*m));
 
   m->min = NAN;
   m->max = NAN;
index 013b6c4..1e1d42d 100644 (file)
@@ -206,13 +206,12 @@ static int cmc_config_add_match (web_page_t *page, /* {{{ */
     WARNING ("memcachec plugin: Ignoring arguments for the `Match' block.");
   }
 
-  match = (web_match_t *) malloc (sizeof (*match));
+  match = calloc (1, sizeof (*match));
   if (match == NULL)
   {
-    ERROR ("memcachec plugin: malloc failed.");
+    ERROR ("memcachec plugin: calloc failed.");
     return (-1);
   }
-  memset (match, 0, sizeof (*match));
 
   status = 0;
   for (i = 0; i < ci->children_num; i++)
@@ -305,13 +304,12 @@ static int cmc_config_add_page (oconfig_item_t *ci) /* {{{ */
     return (-1);
   }
 
-  page = (web_page_t *) malloc (sizeof (*page));
+  page = calloc (1, sizeof (*page));
   if (page == NULL)
   {
-    ERROR ("memcachec plugin: malloc failed.");
+    ERROR ("memcachec plugin: calloc failed.");
     return (-1);
   }
-  memset (page, 0, sizeof (*page));
   page->server = NULL;
   page->key = NULL;
 
index 2c01a57..4e7b143 100644 (file)
@@ -587,14 +587,13 @@ static int config_add_instance(oconfig_item_t *ci)
   /* Disable automatic generation of default instance in the init callback. */
   memcached_have_instances = 1;
 
-  st = malloc (sizeof (*st));
+  st = calloc (1, sizeof (*st));
   if (st == NULL)
   {
-    ERROR ("memcached plugin: malloc failed.");
+    ERROR ("memcached plugin: calloc failed.");
     return (-1);
   }
 
-  memset (st, 0, sizeof (*st));
   st->name = NULL;
   st->socket = NULL;
   st->host = NULL;
@@ -685,10 +684,9 @@ static int memcached_init (void)
     return (0);
 
   /* No instances were configured, lets start a default instance. */
-  st = malloc (sizeof (*st));
+  st = calloc (1, sizeof (*st));
   if (st == NULL)
     return (ENOMEM);
-  memset (st, 0, sizeof (*st));
   st->name = sstrdup ("__legacy__");
   st->socket = NULL;
   st->host = NULL;
index d538fb3..51447b1 100644 (file)
@@ -80,7 +80,7 @@ enum mb_register_type_e /* {{{ */
   REG_TYPE_UINT32,
   REG_TYPE_FLOAT
 }; /* }}} */
-enum mb_mreg_type_e /* {{{ */ 
+enum mb_mreg_type_e /* {{{ */
 {
   MREG_HOLDING,
   MREG_INPUT
@@ -503,7 +503,7 @@ static int mb_read_data (mb_host_t *host, mb_slave_t *slave, /* {{{ */
     modbus_free (host->connection);
 #endif
   }
+
 #if LEGACY_LIBMODBUS
   /* Version 2.0.3: Pass the connection struct as a pointer and pass the slave
    * id to each call of "read_holding_registers". */
@@ -938,10 +938,9 @@ static int mb_config_add_host (oconfig_item_t *ci) /* {{{ */
   int status;
   int i;
 
-  host = malloc (sizeof (*host));
+  host = calloc (1, sizeof (*host));
   if (host == NULL)
     return (ENOMEM);
-  memset (host, 0, sizeof (*host));
   host->slaves = NULL;
 
   status = cf_util_get_string_buffer (ci, host->host, sizeof (host->host));
index 4977f68..0b00bab 100644 (file)
@@ -559,7 +559,7 @@ static int mqtt_config_publisher (oconfig_item_t *ci)
     conf = calloc (1, sizeof (*conf));
     if (conf == NULL)
     {
-        ERROR ("mqtt plugin: malloc failed.");
+        ERROR ("mqtt plugin: calloc failed.");
         return (-1);
     }
     conf->publish = 1;
@@ -664,7 +664,7 @@ static int mqtt_config_subscriber (oconfig_item_t *ci)
     conf = calloc (1, sizeof (*conf));
     if (conf == NULL)
     {
-        ERROR ("mqtt plugin: malloc failed.");
+        ERROR ("mqtt plugin: calloc failed.");
         return (-1);
     }
     conf->publish = 0;
index db38a4b..a239413 100644 (file)
@@ -65,9 +65,6 @@ typedef struct mysql_database_s mysql_database_t; /* }}} */
 
 static int mysql_read (user_data_t *ud);
 
-void mysql_read_default_options(struct st_mysql_options *options,
-               const char *filename, const char *group);
-
 static void mysql_database_free (void *arg) /* {{{ */
 {
        mysql_database_t *db;
@@ -116,13 +113,12 @@ static int mysql_config_database (oconfig_item_t *ci) /* {{{ */
                return (-1);
        }
 
-       db = (mysql_database_t *) malloc (sizeof (*db));
+       db = calloc (1, sizeof (*db));
        if (db == NULL)
        {
-               ERROR ("mysql plugin: malloc failed.");
+               ERROR ("mysql plugin: calloc failed.");
                return (-1);
        }
-       memset (db, 0, sizeof (*db));
 
        /* initialize all the pointers */
        db->alias    = NULL;
@@ -742,7 +738,7 @@ static int mysql_read (user_data_t *ud)
                key = row[0];
                val = atoll (row[1]);
 
-               if (strncmp (key, "Com_", 
+               if (strncmp (key, "Com_",
                                  strlen ("Com_")) == 0)
                {
                        if (val == 0ULL)
@@ -750,18 +746,18 @@ static int mysql_read (user_data_t *ud)
 
                        /* Ignore `prepared statements' */
                        if (strncmp (key, "Com_stmt_", strlen ("Com_stmt_")) != 0)
-                               counter_submit ("mysql_commands", 
-                                               key + strlen ("Com_"), 
+                               counter_submit ("mysql_commands",
+                                               key + strlen ("Com_"),
                                                val, db);
                }
-               else if (strncmp (key, "Handler_", 
+               else if (strncmp (key, "Handler_",
                                        strlen ("Handler_")) == 0)
                {
                        if (val == 0ULL)
                                continue;
 
-                       counter_submit ("mysql_handler", 
-                                       key + strlen ("Handler_"), 
+                       counter_submit ("mysql_handler",
+                                       key + strlen ("Handler_"),
                                        val, db);
                }
                else if (strncmp (key, "Qcache_",
@@ -778,7 +774,7 @@ static int mysql_read (user_data_t *ud)
                        else if (strcmp (key, "Qcache_queries_in_cache") == 0)
                                qcache_queries_in_cache = (gauge_t) val;
                }
-               else if (strncmp (key, "Bytes_", 
+               else if (strncmp (key, "Bytes_",
                                        strlen ("Bytes_")) == 0)
                {
                        if (strcmp (key, "Bytes_received") == 0)
@@ -786,7 +782,7 @@ static int mysql_read (user_data_t *ud)
                        else if (strcmp (key, "Bytes_sent") == 0)
                                traffic_outgoing += val;
                }
-               else if (strncmp (key, "Threads_", 
+               else if (strncmp (key, "Threads_",
                                                strlen ("Threads_")) == 0)
                {
                        if (strcmp (key, "Threads_running") == 0)
@@ -898,8 +894,15 @@ static int mysql_read (user_data_t *ud)
                }
                else if (strncmp (key, "Sort_", strlen ("Sort_")) == 0)
                {
-                       counter_submit ("mysql_sort", key + strlen ("Sort_"),
-                                       val, db);
+                       if (strcmp (key, "Sort_merge_passes") == 0)
+                               counter_submit ("mysql_sort_merge_passes", NULL, val, db);
+                       else if (strcmp (key, "Sort_rows") == 0)
+                               counter_submit ("mysql_sort_rows", NULL, val, db);
+                       else if (strcmp (key, "Sort_range") == 0)
+                               counter_submit ("mysql_sort", "range", val, db);
+                       else if (strcmp (key, "Sort_scan") == 0)
+                               counter_submit ("mysql_sort", "scan", val, db);
+
                }
        }
        mysql_free_result (res); res = NULL;
index 8a8a7fe..e00c252 100644 (file)
@@ -464,10 +464,9 @@ static disk_t *get_disk(cfg_disk_t *cd, const char *name) /* {{{ */
                        return d;
        }
 
-       d = malloc(sizeof(*d));
+       d = calloc (1, sizeof (*d));
        if (d == NULL)
                return (NULL);
-       memset (d, 0, sizeof (*d));
        d->next = NULL;
 
        d->name = strdup(name);
@@ -513,10 +512,9 @@ static data_volume_usage_t *get_volume_usage (cfg_volume_usage_t *cvu, /* {{{ */
                return (NULL);
 
        /* Not found: allocate. */
-       new = malloc (sizeof (*new));
+       new = calloc (1, sizeof (*new));
        if (new == NULL)
                return (NULL);
-       memset (new, 0, sizeof (*new));
        new->next = NULL;
 
        new->name = strdup (name);
@@ -581,10 +579,9 @@ static data_volume_perf_t *get_volume_perf (cfg_volume_perf_t *cvp, /* {{{ */
                return (NULL);
 
        /* Not found: allocate. */
-       new = malloc (sizeof (*new));
+       new = calloc (1, sizeof (*new));
        if (new == NULL)
                return (NULL);
-       memset (new, 0, sizeof (*new));
        new->next = NULL;
 
        new->name = strdup (name);
@@ -882,7 +879,7 @@ static cdtime_t cna_child_get_cdtime (na_elem_t *data) /* {{{ */
 } /* }}} cdtime_t cna_child_get_cdtime */
 
 
-/* 
+/*
  * Query functions
  *
  * These functions are called with appropriate data returned by the libnetapp
@@ -900,7 +897,7 @@ static int cna_handle_wafl_data (const char *hostname, cfg_wafl_t *cfg_wafl, /*
        na_elem_iter_t counter_iter;
 
        memset (&perf_data, 0, sizeof (perf_data));
-       
+
        perf_data.timestamp = cna_child_get_cdtime (data);
 
        instances = na_elem_child(na_elem_child (data, "instances"), "instance-data");
@@ -1065,7 +1062,7 @@ static int cna_handle_disk_data (const char *hostname, /* {{{ */
 
        if ((cfg_disk == NULL) || (data == NULL))
                return (EINVAL);
-       
+
        timestamp = cna_child_get_cdtime (data);
 
        instances = na_elem_child (data, "instances");
@@ -1257,7 +1254,7 @@ static int cna_handle_volume_perf_data (const char *hostname, /* {{{ */
        na_elem_t *elem_instances;
        na_elem_iter_t iter_instances;
        na_elem_t *elem_instance;
-       
+
        timestamp = cna_child_get_cdtime (data);
 
        elem_instances = na_elem_child(data, "instances");
@@ -1736,7 +1733,7 @@ static int cna_handle_volume_usage_data (const host_config_t *host, /* {{{ */
 
                if ((v->flags & CFG_VOLUME_USAGE_SNAP) != 0)
                        cna_handle_volume_snap_usage(host, v);
-               
+
                if ((v->flags & CFG_VOLUME_USAGE_DF) == 0)
                        continue;
 
@@ -2131,7 +2128,7 @@ static int cna_handle_system_data (const char *hostname, /* {{{ */
 
        const char *instance;
        cdtime_t timestamp;
-       
+
        timestamp = cna_child_get_cdtime (data);
 
        instances = na_elem_child(na_elem_child (data, "instances"), "instance-data");
@@ -2198,7 +2195,7 @@ static int cna_handle_system_data (const char *hostname, /* {{{ */
                        && (HAS_ALL_FLAGS (counter_flags, 0x01 | 0x02)))
                submit_two_derive (hostname, instance, "disk_octets", NULL,
                                disk_read, disk_written, timestamp, interval);
-                               
+
        if ((cfg_system->flags & CFG_SYSTEM_NET)
                        && (HAS_ALL_FLAGS (counter_flags, 0x04 | 0x08)))
                submit_two_derive (hostname, instance, "if_octets", NULL,
@@ -2405,10 +2402,9 @@ static int cna_config_volume_performance (host_config_t *host, /* {{{ */
 
        if (host->cfg_volume_perf == NULL)
        {
-               cfg_volume_perf = malloc (sizeof (*cfg_volume_perf));
+               cfg_volume_perf = calloc (1, sizeof (*cfg_volume_perf));
                if (cfg_volume_perf == NULL)
                        return (ENOMEM);
-               memset (cfg_volume_perf, 0, sizeof (*cfg_volume_perf));
 
                /* Set default flags */
                cfg_volume_perf->query = NULL;
@@ -2441,10 +2437,10 @@ static int cna_config_volume_performance (host_config_t *host, /* {{{ */
                host->cfg_volume_perf = cfg_volume_perf;
        }
        cfg_volume_perf = host->cfg_volume_perf;
-       
+
        for (i = 0; i < ci->children_num; ++i) {
                oconfig_item_t *item = ci->children + i;
-               
+
                /* if (!item || !item->key || !*item->key) continue; */
                if (strcasecmp(item->key, "Interval") == 0)
                        cna_config_get_interval (item, &cfg_volume_perf->interval);
@@ -2533,10 +2529,9 @@ static int cna_config_quota (host_config_t *host, oconfig_item_t *ci) /* {{{ */
 
        if (host->cfg_quota == NULL)
        {
-               cfg_quota = malloc (sizeof (*cfg_quota));
+               cfg_quota = calloc (1, sizeof (*cfg_quota));
                if (cfg_quota == NULL)
                        return (ENOMEM);
-               memset (cfg_quota, 0, sizeof (*cfg_quota));
                cfg_quota->query = NULL;
 
                host->cfg_quota = cfg_quota;
@@ -2566,10 +2561,9 @@ static int cna_config_disk(host_config_t *host, oconfig_item_t *ci) { /* {{{ */
 
        if (host->cfg_disk == NULL)
        {
-               cfg_disk = malloc (sizeof (*cfg_disk));
+               cfg_disk = calloc (1, sizeof (*cfg_disk));
                if (cfg_disk == NULL)
                        return (ENOMEM);
-               memset (cfg_disk, 0, sizeof (*cfg_disk));
 
                /* Set default flags */
                cfg_disk->flags = CFG_DISK_ALL;
@@ -2579,10 +2573,10 @@ static int cna_config_disk(host_config_t *host, oconfig_item_t *ci) { /* {{{ */
                host->cfg_disk = cfg_disk;
        }
        cfg_disk = host->cfg_disk;
-       
+
        for (i = 0; i < ci->children_num; ++i) {
                oconfig_item_t *item = ci->children + i;
-               
+
                /* if (!item || !item->key || !*item->key) continue; */
                if (strcasecmp(item->key, "Interval") == 0)
                        cna_config_get_interval (item, &cfg_disk->interval);
@@ -2612,10 +2606,9 @@ static int cna_config_wafl(host_config_t *host, oconfig_item_t *ci) /* {{{ */
 
        if (host->cfg_wafl == NULL)
        {
-               cfg_wafl = malloc (sizeof (*cfg_wafl));
+               cfg_wafl = calloc (1, sizeof (*cfg_wafl));
                if (cfg_wafl == NULL)
                        return (ENOMEM);
-               memset (cfg_wafl, 0, sizeof (*cfg_wafl));
 
                /* Set default flags */
                cfg_wafl->flags = CFG_WAFL_ALL;
@@ -2626,7 +2619,7 @@ static int cna_config_wafl(host_config_t *host, oconfig_item_t *ci) /* {{{ */
 
        for (i = 0; i < ci->children_num; ++i) {
                oconfig_item_t *item = ci->children + i;
-               
+
                if (strcasecmp(item->key, "Interval") == 0)
                        cna_config_get_interval (item, &cfg_wafl->interval);
                else if (!strcasecmp(item->key, "GetNameCache"))
@@ -2681,10 +2674,9 @@ static int cna_config_volume_usage(host_config_t *host, /* {{{ */
 
        if (host->cfg_volume_usage == NULL)
        {
-               cfg_volume_usage = malloc (sizeof (*cfg_volume_usage));
+               cfg_volume_usage = calloc (1, sizeof (*cfg_volume_usage));
                if (cfg_volume_usage == NULL)
                        return (ENOMEM);
-               memset (cfg_volume_usage, 0, sizeof (*cfg_volume_usage));
 
                /* Set default flags */
                cfg_volume_usage->query = NULL;
@@ -2708,10 +2700,10 @@ static int cna_config_volume_usage(host_config_t *host, /* {{{ */
                host->cfg_volume_usage = cfg_volume_usage;
        }
        cfg_volume_usage = host->cfg_volume_usage;
-       
+
        for (i = 0; i < ci->children_num; ++i) {
                oconfig_item_t *item = ci->children + i;
-               
+
                /* if (!item || !item->key || !*item->key) continue; */
                if (strcasecmp(item->key, "Interval") == 0)
                        cna_config_get_interval (item, &cfg_volume_usage->interval);
@@ -2743,10 +2735,9 @@ static int cna_config_snapvault (host_config_t *host, /* {{{ */
 
        if (host->cfg_snapvault == NULL)
        {
-               cfg_snapvault = malloc (sizeof (*cfg_snapvault));
+               cfg_snapvault = calloc (1, sizeof (*cfg_snapvault));
                if (cfg_snapvault == NULL)
                        return ENOMEM;
-               memset (cfg_snapvault, 0, sizeof (*cfg_snapvault));
                cfg_snapvault->query = NULL;
 
                host->cfg_snapvault = cfg_snapvault;
@@ -2773,16 +2764,15 @@ static int cna_config_system (host_config_t *host, /* {{{ */
 {
        cfg_system_t *cfg_system;
        int i;
-       
+
        if ((host == NULL) || (ci == NULL))
                return (EINVAL);
 
        if (host->cfg_system == NULL)
        {
-               cfg_system = malloc (sizeof (*cfg_system));
+               cfg_system = calloc (1, sizeof (*cfg_system));
                if (cfg_system == NULL)
                        return (ENOMEM);
-               memset (cfg_system, 0, sizeof (*cfg_system));
 
                /* Set default flags */
                cfg_system->flags = CFG_SYSTEM_ALL;
@@ -2827,10 +2817,9 @@ static host_config_t *cna_alloc_host (void) /* {{{ */
 {
        host_config_t *host;
 
-       host = malloc(sizeof(*host));
-       if (! host)
+       host = calloc (1, sizeof (*host));
+       if (host == NULL)
                return (NULL);
-       memset (host, 0, sizeof (*host));
 
        host->name = NULL;
        host->protocol = NA_SERVER_TRANSPORT_HTTPS;
index d4661ce..c8905d5 100644 (file)
@@ -109,12 +109,10 @@ static int add_ignorelist (const char *dev, const char *type,
 {
   ir_ignorelist_t *entry;
 
-  entry = (ir_ignorelist_t *) malloc (sizeof (ir_ignorelist_t));
+  entry = calloc (1, sizeof (*entry));
   if (entry == NULL)
     return (-1);
 
-  memset (entry, '\0', sizeof (ir_ignorelist_t));
-
   if (strcasecmp (dev, "All") != 0)
   {
     entry->device = strdup (dev);
index 439b0ce..6be4ed5 100644 (file)
@@ -618,14 +618,14 @@ static int write_part_values (char **ret_buffer, int *ret_buffer_len,
        if (*ret_buffer_len < packet_len)
                return (-1);
 
-       pkg_values_types = (uint8_t *) malloc (num_values * sizeof (uint8_t));
+       pkg_values_types = malloc (num_values * sizeof (*pkg_values_types));
        if (pkg_values_types == NULL)
        {
                ERROR ("network plugin: write_part_values: malloc failed.");
                return (-1);
        }
 
-       pkg_values = (value_t *) malloc (num_values * sizeof (value_t));
+       pkg_values = malloc (num_values * sizeof (*pkg_values));
        if (pkg_values == NULL)
        {
                free (pkg_values_types);
@@ -2012,10 +2012,9 @@ static sockent_t *sockent_create (int type) /* {{{ */
        if ((type != SOCKENT_TYPE_CLIENT) && (type != SOCKENT_TYPE_SERVER))
                return (NULL);
 
-       se = malloc (sizeof (*se));
+       se = calloc (1, sizeof (*se));
        if (se == NULL)
                return (NULL);
-       memset (se, 0, sizeof (*se));
 
        se->type = type;
        se->node = NULL;
@@ -2196,16 +2195,15 @@ static int sockent_client_connect (sockent_t *se) /* {{{ */
                        continue;
                }
 
-               client->addr = malloc (sizeof (*client->addr));
+               client->addr = calloc (1, sizeof (*client->addr));
                if (client->addr == NULL)
                {
-                       ERROR ("network plugin: malloc failed.");
+                       ERROR ("network plugin: calloc failed.");
                        close (client->fd);
                        client->fd = -1;
                        continue;
                }
 
-               memset (client->addr, 0, sizeof (*client->addr));
                assert (sizeof (*client->addr) >= ai_ptr->ai_addrlen);
                memcpy (client->addr, ai_ptr->ai_addr, ai_ptr->ai_addrlen);
                client->addrlen = ai_ptr->ai_addrlen;
@@ -2495,15 +2493,15 @@ static int network_receive (void) /* {{{ */
                         * these entries in the dispatch thread but put them in
                         * another list, so we don't have to allocate more and
                         * more of these structures. */
-                       ent = malloc (sizeof (receive_list_entry_t));
+                       ent = calloc (1, sizeof (*ent));
                        if (ent == NULL)
                        {
-                               ERROR ("network plugin: malloc failed.");
+                               ERROR ("network plugin: calloc failed.");
                                status = ENOMEM;
                                break;
                        }
-                       memset (ent, 0, sizeof (receive_list_entry_t));
-                       ent->data = malloc (network_config_packet_size);
+
+                       ent->data = malloc (*ent->data);
                        if (ent->data == NULL)
                        {
                                sfree (ent);
@@ -2587,7 +2585,7 @@ static void network_init_buffer (void)
        memset (&send_buffer_vl, 0, sizeof (send_buffer_vl));
 } /* int network_init_buffer */
 
-static void networt_send_buffer_plain (sockent_t *se, /* {{{ */
+static void network_send_buffer_plain (sockent_t *se, /* {{{ */
                const char *buffer, size_t buffer_size)
 {
        int status;
@@ -2617,7 +2615,7 @@ static void networt_send_buffer_plain (sockent_t *se, /* {{{ */
 
                break;
        } /* while (42) */
-} /* }}} void networt_send_buffer_plain */
+} /* }}} void network_send_buffer_plain */
 
 #if HAVE_LIBGCRYPT
 #define BUFFER_ADD(p,s) do { \
@@ -2625,7 +2623,7 @@ static void networt_send_buffer_plain (sockent_t *se, /* {{{ */
   buffer_offset += (s); \
 } while (0)
 
-static void networt_send_buffer_signed (sockent_t *se, /* {{{ */
+static void network_send_buffer_signed (sockent_t *se, /* {{{ */
                const char *in_buffer, size_t in_buffer_size)
 {
   part_signature_sha256_t ps;
@@ -2699,10 +2697,10 @@ static void networt_send_buffer_signed (sockent_t *se, /* {{{ */
   hd = NULL;
 
   buffer_offset = PART_SIGNATURE_SHA256_SIZE + username_len + in_buffer_size;
-  networt_send_buffer_plain (se, buffer, buffer_offset);
-} /* }}} void networt_send_buffer_signed */
+  network_send_buffer_plain (se, buffer, buffer_offset);
+} /* }}} void network_send_buffer_signed */
 
-static void networt_send_buffer_encrypted (sockent_t *se, /* {{{ */
+static void network_send_buffer_encrypted (sockent_t *se, /* {{{ */
                const char *in_buffer, size_t in_buffer_size)
 {
   part_encryption_aes256_t pea;
@@ -2732,7 +2730,7 @@ static void networt_send_buffer_encrypted (sockent_t *se, /* {{{ */
     - sizeof (pea.hash);
 
   assert (buffer_size <= sizeof (buffer));
-  DEBUG ("network plugin: networt_send_buffer_encrypted: "
+  DEBUG ("network plugin: network_send_buffer_encrypted: "
       "buffer_size = %zu;", buffer_size);
 
   pea.head.length = htons ((uint16_t) (PART_ENCRYPTION_AES256_SIZE
@@ -2779,8 +2777,8 @@ static void networt_send_buffer_encrypted (sockent_t *se, /* {{{ */
   }
 
   /* Send it out without further modifications */
-  networt_send_buffer_plain (se, buffer, buffer_size);
-} /* }}} void networt_send_buffer_encrypted */
+  network_send_buffer_plain (se, buffer, buffer_size);
+} /* }}} void network_send_buffer_encrypted */
 #undef BUFFER_ADD
 #endif /* HAVE_LIBGCRYPT */
 
@@ -2794,12 +2792,12 @@ static void network_send_buffer (char *buffer, size_t buffer_len) /* {{{ */
   {
 #if HAVE_LIBGCRYPT
     if (se->data.client.security_level == SECURITY_LEVEL_ENCRYPT)
-      networt_send_buffer_encrypted (se, buffer, buffer_len);
+      network_send_buffer_encrypted (se, buffer, buffer_len);
     else if (se->data.client.security_level == SECURITY_LEVEL_SIGN)
-      networt_send_buffer_signed (se, buffer, buffer_len);
+      network_send_buffer_signed (se, buffer, buffer_len);
     else /* if (se->data.client.security_level == SECURITY_LEVEL_NONE) */
 #endif /* HAVE_LIBGCRYPT */
-      networt_send_buffer_plain (se, buffer, buffer_len);
+      network_send_buffer_plain (se, buffer, buffer_len);
   } /* for (sending_sockets) */
 } /* }}} void network_send_buffer */
 
@@ -3192,7 +3190,7 @@ static int network_config_add_server (const oconfig_item_t *ci) /* {{{ */
   }
 
   /* No call to sockent_client_connect() here -- it is called from
-   * networt_send_buffer_plain(). */
+   * network_send_buffer_plain(). */
 
   status = sockent_add (se);
   if (status != 0)
index a921a17..0948bc7 100644 (file)
--- a/src/nfs.c
+++ b/src/nfs.c
@@ -221,7 +221,7 @@ static size_t nfs4_server40_procedures_names_num = STATIC_ARRAY_SIZE (nfs4_serve
 static const char *nfs4_server41_procedures_names[] =
 {
        "backchannel_ctl",
-       "bind_conn_to_session", 
+       "bind_conn_to_session",
        "exchange_id",
        "create_session",
        "destroy_session",
@@ -404,7 +404,7 @@ static void nfs_procedures_submit (const char *plugin_instance,
 } /* void nfs_procedures_submit */
 
 #if KERNEL_LINUX
-static void nfs_submit_fields (int nfs_version, const char *instance, 
+static void nfs_submit_fields (int nfs_version, const char *instance,
                char **fields, size_t fields_num, const char **proc_names)
 {
        char plugin_instance[DATA_MAX_NAME_LEN];
@@ -434,19 +434,19 @@ static int nfs_submit_fields_safe (int nfs_version, const char *instance,
                return (EINVAL);
        }
 
-       nfs_submit_fields (nfs_version, instance, fields, fields_num, 
+       nfs_submit_fields (nfs_version, instance, fields, fields_num,
                        proc_names);
 
        return (0);
 }
 
-static int nfs_submit_nfs4_server (const char *instance, char **fields, 
+static int nfs_submit_nfs4_server (const char *instance, char **fields,
                size_t fields_num)
 {
        static int suppress_warning = 0;
 
        if (fields_num != NFS4_SERVER40_NUM_PROC &&
-               fields_num != NFS4_SERVER41_NUM_PROC) 
+               fields_num != NFS4_SERVER41_NUM_PROC)
        {
                if (!suppress_warning)
                {
@@ -466,7 +466,7 @@ static int nfs_submit_nfs4_server (const char *instance, char **fields,
                }
        }
 
-        nfs_submit_fields (4, instance, fields, 
+        nfs_submit_fields (4, instance, fields,
                        nfs4_server40_procedures_names_num,
                        nfs4_server40_procedures_names);
 
@@ -474,15 +474,15 @@ static int nfs_submit_nfs4_server (const char *instance, char **fields,
        {
                fields += nfs4_server40_procedures_names_num;
 
-               nfs_submit_fields (4, instance, fields, 
-                               nfs4_server41_procedures_names_num, 
+               nfs_submit_fields (4, instance, fields,
+                               nfs4_server41_procedures_names_num,
                                nfs4_server41_procedures_names);
        }
 
        return (0);
 }
 
-static int nfs_submit_nfs4_client (const char *instance, char **fields, 
+static int nfs_submit_nfs4_client (const char *instance, char **fields,
                size_t fields_num)
 {
        size_t proc40_names_num, proc41_names_num;
@@ -589,14 +589,14 @@ static void nfs_read_linux (FILE *fh, const char *inst)
                else if (strcmp (fields[0], "proc4ops") == 0)
                {
                        if (inst[0] == 's')
-                               nfs_submit_nfs4_server (inst, fields + 2, 
+                               nfs_submit_nfs4_server (inst, fields + 2,
                                                (size_t) (fields_num - 2));
                }
                else if (strcmp (fields[0], "proc4") == 0)
                {
                        if (inst[0] == 'c')
                                nfs_submit_nfs4_client (inst, fields + 2,
-                                               (size_t) (fields_num - 2));                     
+                                               (size_t) (fields_num - 2));
                }
        } /* while (fgets) */
 } /* void nfs_read_linux */
index 76d48d4..6843987 100644 (file)
@@ -66,7 +66,7 @@ static char *email_subject = NULL;
 /* Callback to get username and password */
 static int authinteract (auth_client_request_t request, char **result,
     int fields, void __attribute__((unused)) *arg)
-{               
+{
   int i;
   for (i = 0; i < fields; i++)
   {
@@ -145,7 +145,7 @@ static int notify_email_init (void)
   if ( !smtp_auth_set_context (session, authctx)) {
     pthread_mutex_unlock (&session_lock);
     ERROR ("notify_email plugin: cannot set SMTP auth context");
-    return (-1);   
+    return (-1);
   }
 
   pthread_mutex_unlock (&session_lock);
@@ -282,7 +282,7 @@ static int notify_email_notification (const notification_t *n,
   if (!(message = smtp_add_message (session))) {
     pthread_mutex_unlock (&session_lock);
     ERROR ("notify_email plugin: cannot set SMTP message");
-    return (-1);   
+    return (-1);
   }
   smtp_set_reverse_path (message, email_from);
   smtp_set_header (message, "To", NULL, NULL);
index d5ecc98..17eb1b9 100644 (file)
--- a/src/nut.c
+++ b/src/nut.c
@@ -80,13 +80,12 @@ static int nut_add_ups (const char *name)
 
   DEBUG ("nut plugin: nut_add_ups (name = %s);", name);
 
-  ups = (nut_ups_t *) malloc (sizeof (nut_ups_t));
+  ups = calloc (1, sizeof (*ups));
   if (ups == NULL)
   {
-    ERROR ("nut plugin: nut_add_ups: malloc failed.");
+    ERROR ("nut plugin: nut_add_ups: calloc failed.");
     return (1);
   }
-  memset (ups, '\0', sizeof (nut_ups_t));
 
   status = upscli_splitname (name, &ups->upsname, &ups->hostname,
       &ups->port);
@@ -152,7 +151,7 @@ static int nut_read_one (nut_ups_t *ups)
   /* (Re-)Connect if we have no connection */
   if (ups->conn == NULL)
   {
-    ups->conn = (collectd_upsconn_t *) malloc (sizeof (collectd_upsconn_t));
+    ups->conn = malloc (sizeof (*ups->conn));
     if (ups->conn == NULL)
     {
       ERROR ("nut plugin: malloc failed.");
index bbf387f..6be7cb5 100644 (file)
@@ -622,7 +622,7 @@ static int olsrd_read_table (FILE *fh, /* {{{ */
     (*callback) (lineno, fields_num, fields);
     lineno++;
   } /* while (fgets) */
-  
+
   return (0);
 } /* }}} int olsrd_read_table */
 
@@ -665,7 +665,7 @@ static int olsrd_read (void) /* {{{ */
     buffer_len = strchomp (buffer);
     if (buffer_len <= 0)
       continue;
-    
+
     if (strcmp ("Table: Links", buffer) == 0)
       olsrd_read_table (fh, olsrd_cb_links);
     else if (strcmp ("Table: Neighbors", buffer) == 0)
@@ -690,7 +690,7 @@ static int olsrd_read (void) /* {{{ */
   } /* while (fgets) */
 
   fclose (fh);
-  
+
   return (0);
 } /* }}} int olsrd_read */
 
index 58c35e1..42bd1eb 100644 (file)
@@ -176,11 +176,11 @@ static int direct_list_insert(const char * config)
 {
     regmatch_t               pmatch[3];
     size_t                   nmatch = 3;
-    direct_access_element_t *element = NULL;
+    direct_access_element_t *element;
 
     DEBUG ("onewire plugin: direct_list_insert <%s>", config);
 
-    element = (direct_access_element_t *) malloc (sizeof(*element));
+    element = malloc (sizeof (*element));
     if (element == NULL)
     {
         ERROR ("onewire plugin: direct_list_insert - cannot allocate element");
@@ -415,11 +415,11 @@ static int cow_read_ds2409 (const char *path)
   int status;
 
   status = ssnprintf (subpath, sizeof (subpath), "%s/main", path);
-  if ((status > 0) && (status < sizeof (subpath)))
+  if ((status > 0) && (status < (int) sizeof (subpath)))
     cow_read_bus (subpath);
 
   status = ssnprintf (subpath, sizeof (subpath), "%s/aux", path);
-  if ((status > 0) && (status < sizeof (subpath)))
+  if ((status > 0) && (status < (int) sizeof (subpath)))
     cow_read_bus (subpath);
 
   return (0);
@@ -459,7 +459,7 @@ static int cow_read_bus (const char *path)
     else
       status = ssnprintf (subpath, sizeof (subpath), "%s/%s",
           path, buffer_ptr);
-    if ((status <= 0) || (status >= sizeof (subpath)))
+    if ((status <= 0) || (status >= (int) sizeof (subpath)))
       continue;
 
     for (i = 0; i < ow_family_features_num; i++)
index 0a86d52..36a29f8 100644 (file)
@@ -130,7 +130,7 @@ static int cldap_init_host (cldap_t *st) /* {{{ */
                cred.bv_len = 0;
        }
 
-       rc = ldap_sasl_bind_s (st->ld, st->binddn, LDAP_SASL_SIMPLE, &cred, 
+       rc = ldap_sasl_bind_s (st->ld, st->binddn, LDAP_SASL_SIMPLE, &cred,
                        NULL, NULL, NULL);
        if (rc != LDAP_SUCCESS)
        {
@@ -553,13 +553,12 @@ static int cldap_config_add (oconfig_item_t *ci) /* {{{ */
        int i;
        int status;
 
-       st = malloc (sizeof (*st));
+       st = calloc (1, sizeof (*st));
        if (st == NULL)
        {
-               ERROR ("openldap plugin: malloc failed.");
+               ERROR ("openldap plugin: calloc failed.");
                return (-1);
        }
-       memset (st, 0, sizeof (*st));
 
        status = cf_util_get_string (ci, &st->name);
        if (status != 0)
index 8bccce3..ec76a7a 100644 (file)
@@ -699,7 +699,7 @@ static int openvpn_config (const char *key, const char *value)
                }
 
                /* create a new vpn element since file, version and name are ok */
-               temp = (vpn_status_t *) malloc (sizeof (vpn_status_t));
+               temp = malloc (sizeof (*temp));
                if (temp == NULL)
                {
                        char errbuf[1024];
index ab0812b..55139dd 100644 (file)
@@ -174,7 +174,7 @@ static void o_database_free (o_database_t *db) /* {{{ */
  *       ValuesFrom "value"
  *     </Result>
  *   </Query>
- *     
+ *
  *   <Database "plugin_instance1">
  *     ConnectID "db01"
  *     Username "oracle"
@@ -198,13 +198,12 @@ static int o_config_add_database (oconfig_item_t *ci) /* {{{ */
     return (-1);
   }
 
-  db = (o_database_t *) malloc (sizeof (*db));
+  db = calloc (1, sizeof (*db));
   if (db == NULL)
   {
-    ERROR ("oracle plugin: malloc failed.");
+    ERROR ("oracle plugin: calloc failed.");
     return (-1);
   }
-  memset (db, 0, sizeof (*db));
   db->name = NULL;
   db->host = NULL;
   db->connect_id = NULL;
@@ -273,7 +272,7 @@ static int o_config_add_database (oconfig_item_t *ci) /* {{{ */
 
     if (db->q_prep_areas == NULL)
     {
-      WARNING ("oracle plugin: malloc failed");
+      WARNING ("oracle plugin: calloc failed");
       status = -1;
       break;
     }
@@ -463,7 +462,7 @@ static int o_read_database_query (o_database_t *db, /* {{{ */
   {
     ub4 param_counter = 0;
     status = OCIAttrGet (oci_statement, OCI_HTYPE_STMT, /* {{{ */
-        &param_counter, /* size pointer = */ NULL, 
+        &param_counter, /* size pointer = */ NULL,
         OCI_ATTR_PARAM_COUNT, oci_error);
     if (status != OCI_SUCCESS)
     {
@@ -476,7 +475,7 @@ static int o_read_database_query (o_database_t *db, /* {{{ */
   } while (0); /* }}} */
 
   /* Allocate the following buffers:
-   * 
+   *
    *  +---------------+-----------------------------------+
    *  ! Name          ! Size                              !
    *  +---------------+-----------------------------------+
@@ -502,13 +501,12 @@ static int o_read_database_query (o_database_t *db, /* {{{ */
 #define ALLOC_OR_FAIL(ptr, ptr_size) \
   do { \
     size_t alloc_size = (size_t) ((ptr_size)); \
-    (ptr) = malloc (alloc_size); \
+    (ptr) = calloc (1, alloc_size); \
     if ((ptr) == NULL) { \
       FREE_ALL; \
-      ERROR ("oracle plugin: o_read_database_query: malloc failed."); \
+      ERROR ("oracle plugin: o_read_database_query: calloc failed."); \
       return (-1); \
     } \
-    memset ((ptr), 0, alloc_size); \
   } while (0)
 
   /* Initialize everything to NULL so the above works. */
@@ -653,7 +651,7 @@ static int o_read_database (o_database_t *db) /* {{{ */
     ub4 connection_status;
 
     server_handle = NULL;
-    status = OCIAttrGet ((void *) db->oci_service_context, OCI_HTYPE_SVCCTX, 
+    status = OCIAttrGet ((void *) db->oci_service_context, OCI_HTYPE_SVCCTX,
         (void *) &server_handle, /* size pointer = */ NULL,
         OCI_ATTR_SERVER, oci_error);
     if (status != OCI_SUCCESS)
@@ -745,7 +743,7 @@ static int o_shutdown (void) /* {{{ */
       OCIHandleFree (databases[i]->oci_service_context, OCI_HTYPE_SVCCTX);
       databases[i]->oci_service_context = NULL;
     }
-  
+
   for (i = 0; i < queries_num; i++)
   {
     OCIStmt *oci_statement;
@@ -757,7 +755,7 @@ static int o_shutdown (void) /* {{{ */
       udb_query_set_user_data (queries[i], NULL);
     }
   }
-  
+
   OCIHandleFree (oci_env, OCI_HTYPE_ENV);
   oci_env = NULL;
 
index c25bfe8..920e7b3 100644 (file)
@@ -437,7 +437,7 @@ static int av2data_set (pTHX_ AV *array, char *name, data_set_t *ds)
                return -1;
        }
 
-       ds->ds = (data_source_t *)smalloc ((len + 1) * sizeof (data_source_t));
+       ds->ds = smalloc ((len + 1) * sizeof (*ds->ds));
        ds->ds_num = len + 1;
 
        for (i = 0; i <= len; ++i) {
@@ -501,7 +501,7 @@ static int av2notification_meta (pTHX_ AV *array, notification_meta_t **meta)
 
                hash = (HV *)SvRV (*tmp);
 
-               *m = (notification_meta_t *)smalloc (sizeof (**m));
+               *m = smalloc (sizeof (**m));
 
                if (NULL == (tmp = hv_fetch (hash, "name", 4, 0))) {
                        log_warn ("av2notification_meta: Skipping invalid "
@@ -1218,7 +1218,7 @@ static c_ithread_t *c_ithread_create (PerlInterpreter *base)
 
        assert (NULL != perl_threads);
 
-       t = (c_ithread_t *)smalloc (sizeof (c_ithread_t));
+       t = smalloc (sizeof (*t));
        memset (t, 0, sizeof (c_ithread_t));
 
        t->interp = (NULL == base)
@@ -1428,7 +1428,7 @@ static int fc_create (int type, const oconfig_item_t *ci, void **user_data)
                return -1;
        }
 
-       data = (pfc_user_data_t *)smalloc (sizeof (*data));
+       data = smalloc (sizeof (*data));
        data->name      = sstrdup (ci->values[0].value.string);
        data->user_data = newSV (0);
 
@@ -2252,7 +2252,7 @@ static int init_pi (int argc, char **argv)
 #endif
        PERL_SYS_INIT3 (&argc, &argv, &environ);
 
-       perl_threads = (c_ithread_list_t *)smalloc (sizeof (c_ithread_list_t));
+       perl_threads = smalloc (sizeof (*perl_threads));
        memset (perl_threads, 0, sizeof (c_ithread_list_t));
 
        pthread_mutex_init (&perl_threads->mutex, NULL);
@@ -2394,7 +2394,7 @@ static int perl_config_enabledebugger (pTHX_ oconfig_item_t *ci)
                perl_argv[perl_argc - 1] = "-d";
        }
        else {
-               perl_argv[perl_argc - 1] = (char *)smalloc (strlen (value) + 4);
+               perl_argv[perl_argc - 1] = smalloc (strlen (value) + 4);
                sstrncpy (perl_argv[perl_argc - 1], "-d:", 4);
                sstrncpy (perl_argv[perl_argc - 1] + 3, value, strlen (value) + 1);
        }
@@ -2427,7 +2427,7 @@ static int perl_config_includedir (pTHX_ oconfig_item_t *ci)
                        exit (3);
                }
 
-               perl_argv[perl_argc - 1] = (char *)smalloc (strlen (value) + 3);
+               perl_argv[perl_argc - 1] = smalloc (strlen (value) + 3);
                sstrncpy(perl_argv[perl_argc - 1], "-I", 3);
                sstrncpy(perl_argv[perl_argc - 1] + 2, value, strlen (value) + 1);
 
@@ -2545,7 +2545,7 @@ static int perl_config (oconfig_item_t *ci)
 void module_register (void)
 {
        perl_argc = 4;
-       perl_argv = (char **)smalloc ((perl_argc + 1) * sizeof (char *));
+       perl_argv = smalloc ((perl_argc + 1) * sizeof (*perl_argv));
 
        /* default options for the Perl interpreter */
        perl_argv[0] = "";
index d13d047..980fbf2 100644 (file)
@@ -171,7 +171,7 @@ static void service_statnode_add(const char *name, /* {{{ */
     const char *script)
 {
   pinba_statnode_t *node;
-  
+
   node = realloc (stat_nodes,
       sizeof (*stat_nodes) * (stat_nodes_num + 1));
   if (node == NULL)
@@ -183,7 +183,7 @@ static void service_statnode_add(const char *name, /* {{{ */
 
   node = stat_nodes + stat_nodes_num;
   memset (node, 0, sizeof (*node));
-  
+
   /* reset strings */
   node->name   = NULL;
   node->host   = NULL;
@@ -191,13 +191,13 @@ static void service_statnode_add(const char *name, /* {{{ */
   node->script = NULL;
 
   node->mem_peak = NAN;
-  
+
   /* fill query data */
   strset (&node->name, name);
   strset (&node->host, host);
   strset (&node->server, server);
   strset (&node->script, script);
-  
+
   /* increment counter */
   stat_nodes_num++;
 } /* }}} void service_statnode_add */
@@ -209,14 +209,14 @@ static unsigned int service_statnode_collect (pinba_statnode_t *res, /* {{{ */
     unsigned int index)
 {
   pinba_statnode_t *node;
-  
+
   if (stat_nodes_num == 0)
     return 0;
-  
+
   /* begin collecting */
   if (index == 0)
     pthread_mutex_lock (&stat_nodes_lock);
-  
+
   /* end collecting */
   if (index >= stat_nodes_num)
   {
@@ -229,7 +229,7 @@ static unsigned int service_statnode_collect (pinba_statnode_t *res, /* {{{ */
 
   /* reset node */
   node->mem_peak = NAN;
-  
+
   return (index + 1);
 } /* }}} unsigned int service_statnode_collect */
 
@@ -255,7 +255,7 @@ static void service_process_request (Pinba__Request *request) /* {{{ */
   unsigned int i;
 
   pthread_mutex_lock (&stat_nodes_lock);
-  
+
   for (i = 0; i < stat_nodes_num; i++)
   {
     if ((stat_nodes[i].host != NULL)
@@ -272,7 +272,7 @@ static void service_process_request (Pinba__Request *request) /* {{{ */
 
     service_statnode_process(&stat_nodes[i], request);
   }
-  
+
   pthread_mutex_unlock(&stat_nodes_lock);
 } /* }}} void service_process_request */
 
@@ -381,14 +381,13 @@ static pinba_socket_t *pinba_socket_open (const char *node, /* {{{ */
   }
   assert (ai_list != NULL);
 
-  s = malloc (sizeof (*s));
+  s = calloc (1, sizeof (*s));
   if (s == NULL)
   {
     freeaddrinfo (ai_list);
-    ERROR ("pinba plugin: malloc failed.");
+    ERROR ("pinba plugin: calloc failed.");
     return (NULL);
   }
-  memset (s, 0, sizeof (*s));
 
   for (ai_ptr = ai_list; ai_ptr != NULL; ai_ptr = ai_ptr->ai_next)
   {
@@ -396,7 +395,7 @@ static pinba_socket_t *pinba_socket_open (const char *node, /* {{{ */
     if (status != 0)
       break;
   } /* for (ai_list) */
-  
+
   freeaddrinfo (ai_list);
 
   if (s->fd_num < 1)
@@ -415,7 +414,7 @@ static void pinba_socket_free (pinba_socket_t *socket) /* {{{ */
 
   if (!socket)
     return;
-  
+
   for (i = 0; i < socket->fd_num; i++)
   {
     if (socket->fd[i].fd < 0)
@@ -423,23 +422,23 @@ static void pinba_socket_free (pinba_socket_t *socket) /* {{{ */
     close (socket->fd[i].fd);
     socket->fd[i].fd = -1;
   }
-  
+
   sfree(socket);
 } /* }}} void pinba_socket_free */
 
 static int pinba_process_stats_packet (const uint8_t *buffer, /* {{{ */
     size_t buffer_size)
 {
-  Pinba__Request *request;  
-  
+  Pinba__Request *request;
+
   request = pinba__request__unpack (NULL, buffer_size, buffer);
-  
+
   if (!request)
     return (-1);
 
   service_process_request(request);
   pinba__request__free_unpacked (request, NULL);
-    
+
   return (0);
 } /* }}} int pinba_process_stats_packet */
 
@@ -610,7 +609,7 @@ static int pinba_config_view (const oconfig_item_t *ci) /* {{{ */
 static int plugin_config (oconfig_item_t *ci) /* {{{ */
 {
   int i;
-  
+
   /* The lock should not be necessary in the config callback, but let's be
    * sure.. */
   pthread_mutex_lock (&stat_nodes_lock);
@@ -630,7 +629,7 @@ static int plugin_config (oconfig_item_t *ci) /* {{{ */
   }
 
   pthread_mutex_unlock(&stat_nodes_lock);
-  
+
   return (0);
 } /* }}} int pinba_config */
 
@@ -694,7 +693,7 @@ static int plugin_submit (const pinba_statnode_t *res) /* {{{ */
 {
   value_t value;
   value_list_t vl = VALUE_LIST_INIT;
-  
+
   vl.values = &value;
   vl.values_len = 1;
   sstrncpy (vl.host, hostname_g, sizeof (vl.host));
@@ -702,15 +701,15 @@ static int plugin_submit (const pinba_statnode_t *res) /* {{{ */
   sstrncpy (vl.plugin_instance, res->name, sizeof (vl.plugin_instance));
 
   value.derive = res->req_count;
-  sstrncpy (vl.type, "total_requests", sizeof (vl.type)); 
+  sstrncpy (vl.type, "total_requests", sizeof (vl.type));
   plugin_dispatch_values (&vl);
 
   value.derive = float_counter_get (&res->req_time, /* factor = */ 1000);
-  sstrncpy (vl.type, "total_time_in_ms", sizeof (vl.type)); 
+  sstrncpy (vl.type, "total_time_in_ms", sizeof (vl.type));
   plugin_dispatch_values (&vl);
 
   value.derive = res->doc_size;
-  sstrncpy (vl.type, "total_bytes", sizeof (vl.type)); 
+  sstrncpy (vl.type, "total_bytes", sizeof (vl.type));
   plugin_dispatch_values (&vl);
 
   value.derive = float_counter_get (&res->ru_utime, /* factor = */ 100);
@@ -735,12 +734,12 @@ static int plugin_read (void) /* {{{ */
 {
   unsigned int i=0;
   pinba_statnode_t data;
-  
+
   while ((i = service_statnode_collect (&data, i)) != 0)
   {
     plugin_submit (&data);
   }
-  
+
   return 0;
 } /* }}} int plugin_read */
 
index da63d3a..88661e9 100644 (file)
@@ -399,7 +399,7 @@ static int start_thread (void) /* {{{ */
     pthread_mutex_unlock (&ping_lock);
     return (-1);
   }
-    
+
   pthread_mutex_unlock (&ping_lock);
   return (0);
 } /* }}} int start_thread */
@@ -483,7 +483,7 @@ static int ping_config (const char *key, const char *value) /* {{{ */
     hostlist_t *hl;
     char *host;
 
-    hl = (hostlist_t *) malloc (sizeof (hostlist_t));
+    hl = malloc (sizeof (*hl));
     if (hl == NULL)
     {
       char errbuf[1024];
index 7922683..b4b4ca7 100644 (file)
@@ -218,7 +218,7 @@ static c_psql_database_t *c_psql_database_new (const char *name)
        c_psql_database_t **tmp;
        c_psql_database_t  *db;
 
-       db = (c_psql_database_t *)malloc (sizeof(*db));
+       db = malloc (sizeof(*db));
        if (NULL == db) {
                log_err ("Out of memory.");
                return NULL;
@@ -555,7 +555,7 @@ static int c_psql_exec_query (c_psql_database_t *db, udb_query_t *q,
                log_err ("calloc failed.");
                BAIL_OUT (-1);
        }
-       
+
        for (col = 0; col < column_num; ++col) {
                /* Pointers returned by `PQfname' are freed by `PQclear' via
                 * `BAIL_OUT'. */
@@ -867,7 +867,7 @@ static int c_psql_write (const data_set_t *ds, const value_list_t *vl,
 #undef VALUE_OR_NULL
 
        if( db->expire_delay > 0 && vl->time < (cdtime() - vl->interval - db->expire_delay) ) {
-               log_info ("c_psql_write: Skipped expired value @ %s - %s/%s-%s/%s-%s/%s", 
+               log_info ("c_psql_write: Skipped expired value @ %s - %s/%s-%s/%s-%s/%s",
                        params[0], params[1], params[2], params[3], params[4], params[5], params[6] );
                return 0;
         }
@@ -1042,12 +1042,11 @@ static int config_query_param_add (udb_query_t *q, oconfig_item_t *ci)
 
        data = udb_query_get_user_data (q);
        if (NULL == data) {
-               data = malloc (sizeof (*data));
+               data = calloc (1, sizeof (*data));
                if (NULL == data) {
                        log_err ("Out of memory.");
                        return -1;
                }
-               memset (data, 0, sizeof (*data));
                data->params = NULL;
                data->params_num = 0;
 
index ab62dcf..1c41ff8 100644 (file)
@@ -465,7 +465,7 @@ static int powerdns_get_data_dgram (list_item_t *item, /* {{{ */
     return (-1);
 
   assert (buffer_size > 0);
-  buffer = (char *) malloc (buffer_size);
+  buffer = malloc (buffer_size);
   if (buffer == NULL)
   {
     FUNC_ERROR ("malloc");
@@ -840,13 +840,12 @@ static int powerdns_config_add_server (oconfig_item_t *ci) /* {{{ */
     return (-1);
   }
 
-  item = (list_item_t *) malloc (sizeof (list_item_t));
+  item = calloc (1, sizeof (*item));
   if (item == NULL)
   {
-    ERROR ("powerdns plugin: malloc failed.");
+    ERROR ("powerdns plugin: calloc failed.");
     return (-1);
   }
-  memset (item, '\0', sizeof (list_item_t));
 
   item->instance = strdup (ci->values[0].value.string);
   if (item->instance == NULL)
index d0d7361..d759cb7 100644 (file)
@@ -262,20 +262,19 @@ static void ps_list_register (const char *name, const char *regexp)
        procstat_t *ptr;
        int status;
 
-       new = (procstat_t *) malloc (sizeof (procstat_t));
+       new = calloc (1, sizeof (*new));
        if (new == NULL)
        {
-               ERROR ("processes plugin: ps_list_register: malloc failed.");
+               ERROR ("processes plugin: ps_list_register: calloc failed.");
                return;
        }
-       memset (new, 0, sizeof (procstat_t));
        sstrncpy (new->name, name, sizeof (new->name));
 
 #if HAVE_REGEX_H
        if (regexp != NULL)
        {
                DEBUG ("ProcessMatch: adding \"%s\" as criteria to process %s.", regexp, name);
-               new->re = (regex_t *) malloc (sizeof (regex_t));
+               new->re = malloc (sizeof (*new->re));
                if (new->re == NULL)
                {
                        ERROR ("processes plugin: ps_list_register: malloc failed.");
@@ -410,10 +409,9 @@ static void ps_list_add (const char *name, const char *cmdline, procstat_entry_t
                {
                        procstat_entry_t *new;
 
-                       new = (procstat_entry_t *) malloc (sizeof (procstat_entry_t));
+                       new = calloc (1, sizeof (*new));
                        if (new == NULL)
                                return;
-                       memset (new, 0, sizeof (procstat_entry_t));
                        new->id = entry->id;
 
                        if (pse == NULL)
@@ -1348,18 +1346,15 @@ static int ps_read_process(long pid, procstat_t *ps, char *state)
        snprintf(f_usage, sizeof (f_usage), "/proc/%li/usage", pid);
 
 
-       buffer = malloc(sizeof (pstatus_t));
-       memset(buffer, 0, sizeof (pstatus_t));
+       buffer = calloc(1, sizeof (pstatus_t));
        read_file_contents(filename, buffer, sizeof (pstatus_t));
        myStatus = (pstatus_t *) buffer;
 
-       buffer = malloc(sizeof (psinfo_t));
-       memset(buffer, 0, sizeof(psinfo_t));
+       buffer = calloc(1, sizeof (psinfo_t));
        read_file_contents(f_psinfo, buffer, sizeof (psinfo_t));
        myInfo = (psinfo_t *) buffer;
 
-       buffer = malloc(sizeof (prusage_t));
-       memset(buffer, 0, sizeof(prusage_t));
+       buffer = calloc(1, sizeof (prusage_t));
        read_file_contents(f_usage, buffer, sizeof (prusage_t));
        myUsage = (prusage_t *) buffer;
 
index 1a39aad..4d2b2ea 100644 (file)
@@ -48,7 +48,7 @@ static int config_keys_num = STATIC_ARRAY_SIZE (config_keys);
 
 static ignorelist_t *values_list = NULL;
 
-/* 
+/*
  * Functions
  */
 static void submit (const char *protocol_name,
index b5c01aa..32b31cc 100644 (file)
@@ -21,7 +21,7 @@
  * DEALINGS IN THE SOFTWARE.
  *
  * Authors:
- *   Sven Trenkel <collectd at semidefinite.de>  
+ *   Sven Trenkel <collectd at semidefinite.de>
  **/
 
 #include <Python.h>
@@ -57,11 +57,11 @@ static char children_doc[] = "This is a tuple of child nodes. For most nodes thi
 
 static PyObject *Config_new(PyTypeObject *type, PyObject *args, PyObject *kwds) {
        Config *self;
-       
+
        self = (Config *) type->tp_alloc(type, 0);
        if (self == NULL)
                return NULL;
-       
+
        self->parent = NULL;
        self->key = NULL;
        self->values = NULL;
@@ -73,11 +73,11 @@ static int Config_init(PyObject *s, PyObject *args, PyObject *kwds) {
        PyObject *key = NULL, *parent = NULL, *values = NULL, *children = NULL, *tmp;
        Config *self = (Config *) s;
        static char *kwlist[] = {"key", "parent", "values", "children", NULL};
-       
+
        if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|OOO", kwlist,
                        &key, &parent, &values, &children))
                return -1;
-       
+
        if (!IS_BYTES_OR_UNICODE(key)) {
                PyErr_SetString(PyExc_TypeError, "argument 1 must be str");
                Py_XDECREF(parent);
@@ -122,7 +122,7 @@ static PyObject *Config_repr(PyObject *s) {
        Config *self = (Config *) s;
        PyObject *ret = NULL;
        static PyObject *node_prefix = NULL, *root_prefix = NULL, *ending = NULL;
-       
+
        /* This is ok because we have the GIL, so this is thread-save by default. */
        if (node_prefix == NULL)
                node_prefix = cpy_string_to_unicode_or_bytes("<collectd.Config node ");
@@ -132,7 +132,7 @@ static PyObject *Config_repr(PyObject *s) {
                ending = cpy_string_to_unicode_or_bytes(">");
        if (node_prefix == NULL || root_prefix == NULL || ending == NULL)
                return NULL;
-       
+
        ret = PyObject_Str(self->key);
        CPY_SUBSTITUTE(PyObject_Repr, ret, ret);
        if (self->parent == NULL || self->parent == Py_None)
@@ -140,7 +140,7 @@ static PyObject *Config_repr(PyObject *s) {
        else
                CPY_STRCAT(&ret, node_prefix);
        CPY_STRCAT(&ret, ending);
-       
+
        return ret;
 }
 
index b909024..1ed6dc0 100644 (file)
@@ -21,7 +21,7 @@
  * DEALINGS IN THE SOFTWARE.
  *
  * Authors:
- *   Sven Trenkel <collectd at semidefinite.de>  
+ *   Sven Trenkel <collectd at semidefinite.de>
  **/
 
 #include <Python.h>
@@ -250,16 +250,16 @@ static void cpy_destroy_user_data(void *data) {
 static void cpy_build_name(char *buf, size_t size, PyObject *callback, const char *name) {
        const char *module = NULL;
        PyObject *mod = NULL;
-       
+
        if (name != NULL) {
                snprintf(buf, size, "python.%s", name);
                return;
        }
-       
+
        mod = PyObject_GetAttrString(callback, "__module__"); /* New reference. */
        if (mod != NULL)
                module = cpy_unicode_or_bytes_to_string(&mod);
-       
+
        if (module != NULL) {
                snprintf(buf, size, "python.%s", module);
                Py_XDECREF(mod);
@@ -267,7 +267,7 @@ static void cpy_build_name(char *buf, size_t size, PyObject *callback, const cha
                return;
        }
        Py_XDECREF(mod);
-       
+
        snprintf(buf, size, "python.%p", callback);
        PyErr_Clear();
 }
@@ -276,7 +276,7 @@ void cpy_log_exception(const char *context) {
        int l = 0, i;
        const char *typename = NULL, *message = NULL;
        PyObject *type, *value, *traceback, *tn, *m, *list;
-       
+
        PyErr_Fetch(&type, &value, &traceback);
        PyErr_NormalizeException(&type, &value, &traceback);
        if (type == NULL) return;
@@ -402,7 +402,7 @@ static int cpy_write_callback(const data_set_t *ds, const value_list_t *value_li
                                uint64_t ui;
                                double d;
                                _Bool b;
-                               
+
                                type = meta_data_type(meta, table[i]);
                                if (type == MD_TYPE_STRING) {
                                        if (meta_data_get_string(meta, table[i], &string))
@@ -540,7 +540,7 @@ static PyObject *cpy_register_generic(cpy_callback_t **list_head, PyObject *args
        char *name = NULL;
        PyObject *callback = NULL, *data = NULL, *mod = NULL;
        static char *kwlist[] = {"callback", "data", "name", NULL};
-       
+
        if (PyArg_ParseTupleAndKeywords(args, kwds, "O|Oet", kwlist, &callback, &data, NULL, &name) == 0) return NULL;
        if (PyCallable_Check(callback) == 0) {
                PyMem_Free(name);
@@ -552,10 +552,9 @@ static PyObject *cpy_register_generic(cpy_callback_t **list_head, PyObject *args
        Py_INCREF(callback);
        Py_XINCREF(data);
 
-       c = malloc(sizeof(*c));
+       c = calloc(1, sizeof(*c));
        if (c == NULL)
                return NULL;
-       memset (c, 0, sizeof (*c));
 
        c->name = strdup(buf);
        c->callback = callback;
@@ -603,7 +602,7 @@ static PyObject *cpy_flush(PyObject *self, PyObject *args, PyObject *kwds) {
        int timeout = -1;
        char *plugin = NULL, *identifier = NULL;
        static char *kwlist[] = {"plugin", "timeout", "identifier", NULL};
-       
+
        if (PyArg_ParseTupleAndKeywords(args, kwds, "|etiet", kwlist, NULL, &plugin, &timeout, NULL, &identifier) == 0) return NULL;
        Py_BEGIN_ALLOW_THREADS
        plugin_flush(plugin, timeout, identifier);
@@ -631,7 +630,7 @@ static PyObject *cpy_register_generic_userdata(void *reg, void *handler, PyObjec
        char *name = NULL;
        PyObject *callback = NULL, *data = NULL;
        static char *kwlist[] = {"callback", "data", "name", NULL};
-       
+
        if (PyArg_ParseTupleAndKeywords(args, kwds, "O|Oet", kwlist, &callback, &data, NULL, &name) == 0) return NULL;
        if (PyCallable_Check(callback) == 0) {
                PyMem_Free(name);
@@ -640,14 +639,13 @@ static PyObject *cpy_register_generic_userdata(void *reg, void *handler, PyObjec
        }
        cpy_build_name(buf, sizeof(buf), callback, name);
        PyMem_Free(name);
-       
+
        Py_INCREF(callback);
        Py_XINCREF(data);
 
-       c = malloc(sizeof(*c));
+       c = calloc(1, sizeof(*c));
        if (c == NULL)
                return NULL;
-       memset (c, 0, sizeof (*c));
 
        c->name = strdup(buf);
        c->callback = callback;
@@ -670,7 +668,7 @@ static PyObject *cpy_register_read(PyObject *self, PyObject *args, PyObject *kwd
        char *name = NULL;
        PyObject *callback = NULL, *data = NULL;
        static char *kwlist[] = {"callback", "interval", "data", "name", NULL};
-       
+
        if (PyArg_ParseTupleAndKeywords(args, kwds, "O|dOet", kwlist, &callback, &interval, &data, NULL, &name) == 0) return NULL;
        if (PyCallable_Check(callback) == 0) {
                PyMem_Free(name);
@@ -679,14 +677,13 @@ static PyObject *cpy_register_read(PyObject *self, PyObject *args, PyObject *kwd
        }
        cpy_build_name(buf, sizeof(buf), callback, name);
        PyMem_Free(name);
-       
+
        Py_INCREF(callback);
        Py_XINCREF(data);
 
-       c = malloc(sizeof(*c));
+       c = calloc(1, sizeof(*c));
        if (c == NULL)
                return NULL;
-       memset (c, 0, sizeof (*c));
 
        c->name = strdup(buf);
        c->callback = callback;
@@ -903,7 +900,7 @@ static PyMethodDef cpy_methods[] = {
 static int cpy_shutdown(void) {
        cpy_callback_t *c;
        PyObject *ret;
-       
+
        /* This can happen if the module was loaded but not configured. */
        if (state != NULL)
                PyEval_RestoreThread(state);
@@ -927,14 +924,14 @@ static void cpy_int_handler(int sig) {
 static void *cpy_interactive(void *data) {
        sigset_t sigset;
        struct sigaction sig_int_action, old;
-       
+
        /* Signal handler in a plugin? Bad stuff, but the best way to
         * handle it I guess. In an interactive session people will
         * press Ctrl+C at some time, which will generate a SIGINT.
         * This will cause collectd to shutdown, thus killing the
         * interactive interpreter, and leaving the terminal in a
         * mess. Chances are, this isn't what the user wanted to do.
-        * 
+        *
         * So this is the plan:
         * 1. Block SIGINT in the main thread.
         * 2. Install our own signal handler that does nothing.
@@ -947,7 +944,7 @@ static void *cpy_interactive(void *data) {
        memset (&sig_int_action, '\0', sizeof (sig_int_action));
        sig_int_action.sa_handler = cpy_int_handler;
        sigaction (SIGINT, &sig_int_action, &old);
-       
+
        sigemptyset(&sigset);
        sigaddset(&sigset, SIGINT);
        pthread_sigmask(SIG_UNBLOCK, &sigset, NULL);
@@ -976,7 +973,7 @@ static int cpy_init(void) {
        PyObject *ret;
        static pthread_t thread;
        sigset_t sigset;
-       
+
        if (!Py_IsInitialized()) {
                WARNING("python: Plugin loaded but not configured.");
                plugin_unregister_shutdown("python");
@@ -1007,10 +1004,10 @@ static int cpy_init(void) {
 static PyObject *cpy_oconfig_to_pyconfig(oconfig_item_t *ci, PyObject *parent) {
        int i;
        PyObject *item, *values, *children, *tmp;
-       
+
        if (parent == NULL)
                parent = Py_None;
-       
+
        values = PyTuple_New(ci->values_num); /* New reference. */
        for (i = 0; i < ci->values_num; ++i) {
                if (ci->values[i].type == OCONFIG_TYPE_STRING) {
@@ -1021,7 +1018,7 @@ static PyObject *cpy_oconfig_to_pyconfig(oconfig_item_t *ci, PyObject *parent) {
                        PyTuple_SET_ITEM(values, i, PyBool_FromLong(ci->values[i].value.boolean));
                }
        }
-       
+
        tmp = cpy_string_to_unicode_or_bytes(ci->key);
        item = PyObject_CallFunction((void *) &ConfigType, "NONO", tmp, parent, values, Py_None);
        if (item == NULL)
@@ -1061,9 +1058,9 @@ static int cpy_init_python(void) {
 #else
        char *argv = "";
 #endif
-       
+
        Py_Initialize();
-       
+
        PyType_Ready(&ConfigType);
        PyType_Ready(&PluginDataType);
        ValuesType.tp_base = &PluginDataType;
@@ -1128,7 +1125,7 @@ static int cpy_config(oconfig_item_t *ci) {
 
        for (i = 0; i < ci->children_num; ++i) {
                oconfig_item_t *item = ci->children + i;
-               
+
                if (strcasecmp(item->key, "Interactive") == 0) {
                        if (item->values_num != 1 || item->values[0].type != OCONFIG_TYPE_BOOLEAN)
                                continue;
@@ -1165,8 +1162,8 @@ static int cpy_config(oconfig_item_t *ci) {
                } else if (strcasecmp(item->key, "ModulePath") == 0) {
                        char *dir = NULL;
                        PyObject *dir_object;
-                       
-                       if (cf_util_get_string(item, &dir) != 0) 
+
+                       if (cf_util_get_string(item, &dir) != 0)
                                continue;
                        dir_object = cpy_string_to_unicode_or_bytes(dir); /* New reference. */
                        if (dir_object == NULL) {
@@ -1186,8 +1183,8 @@ static int cpy_config(oconfig_item_t *ci) {
                } else if (strcasecmp(item->key, "Import") == 0) {
                        char *module_name = NULL;
                        PyObject *module;
-                       
-                       if (cf_util_get_string(item, &module_name) != 0) 
+
+                       if (cf_util_get_string(item, &module_name) != 0)
                                continue;
                        module = PyImport_ImportModule(module_name); /* New reference. */
                        if (module == NULL) {
@@ -1200,7 +1197,7 @@ static int cpy_config(oconfig_item_t *ci) {
                        char *name = NULL;
                        cpy_callback_t *c;
                        PyObject *ret;
-                       
+
                        if (cf_util_get_string(item, &name) != 0)
                                continue;
                        for (c = cpy_config_callbacks; c; c = c->next) {
index 1097f7f..3c52ce5 100644 (file)
@@ -21,7 +21,7 @@
  * DEALINGS IN THE SOFTWARE.
  *
  * Authors:
- *   Sven Trenkel <collectd at semidefinite.de>  
+ *   Sven Trenkel <collectd at semidefinite.de>
  **/
 
 #include <Python.h>
@@ -45,7 +45,7 @@ static PyObject *cpy_common_repr(PyObject *s) {
        static PyObject *l_type = NULL, *l_type_instance = NULL, *l_plugin = NULL, *l_plugin_instance = NULL;
        static PyObject *l_host = NULL, *l_time = NULL;
        PluginData *self = (PluginData *) s;
-       
+
        if (l_type == NULL)
                l_type = cpy_string_to_unicode_or_bytes("(type=");
        if (l_type_instance == NULL)
@@ -58,10 +58,10 @@ static PyObject *cpy_common_repr(PyObject *s) {
                l_host = cpy_string_to_unicode_or_bytes(",host=");
        if (l_time == NULL)
                l_time = cpy_string_to_unicode_or_bytes(",time=");
-       
+
        if (!l_type || !l_type_instance || !l_plugin || !l_plugin_instance || !l_host || !l_time)
                return NULL;
-       
+
        ret = cpy_string_to_unicode_or_bytes(s->ob_type->tp_name);
 
        CPY_STRCAT(&ret, l_type);
@@ -134,11 +134,11 @@ static char PluginData_doc[] = "This is an internal class that is the base for V
 
 static PyObject *PluginData_new(PyTypeObject *type, PyObject *args, PyObject *kwds) {
        PluginData *self;
-       
+
        self = (PluginData *) type->tp_alloc(type, 0);
        if (self == NULL)
                return NULL;
-       
+
        self->time = 0;
        self->host[0] = 0;
        self->plugin[0] = 0;
@@ -154,11 +154,11 @@ static int PluginData_init(PyObject *s, PyObject *args, PyObject *kwds) {
        char *type = NULL, *plugin_instance = NULL, *type_instance = NULL, *plugin = NULL, *host = NULL;
        static char *kwlist[] = {"type", "plugin_instance", "type_instance",
                        "plugin", "host", "time", NULL};
-       
+
        if (!PyArg_ParseTupleAndKeywords(args, kwds, "|etetetetetd", kwlist, NULL, &type,
                        NULL, &plugin_instance, NULL, &type_instance, NULL, &plugin, NULL, &host, &time))
                return -1;
-       
+
        if (type && plugin_get_ds(type) == NULL) {
                PyErr_Format(PyExc_TypeError, "Dataset %s not found", type);
                FreeAll();
@@ -180,13 +180,13 @@ static int PluginData_init(PyObject *s, PyObject *args, PyObject *kwds) {
 static PyObject *PluginData_repr(PyObject *s) {
        PyObject *ret;
        static PyObject *l_closing = NULL;
-       
+
        if (l_closing == NULL)
                l_closing = cpy_string_to_unicode_or_bytes(")");
-       
+
        if (l_closing == NULL)
                return NULL;
-       
+
        ret = cpy_common_repr(s);
        CPY_STRCAT(&ret, l_closing);
        return ret;
@@ -199,14 +199,14 @@ static PyMemberDef PluginData_members[] = {
 
 static PyObject *PluginData_getstring(PyObject *self, void *data) {
        const char *value = ((char *) self) + (intptr_t) data;
-       
+
        return cpy_string_to_unicode_or_bytes(value);
 }
 
 static int PluginData_setstring(PyObject *self, PyObject *value, void *data) {
        char *old;
        const char *new;
-       
+
        if (value == NULL) {
                PyErr_SetString(PyExc_TypeError, "Cannot delete this attribute");
                return -1;
@@ -226,7 +226,7 @@ static int PluginData_setstring(PyObject *self, PyObject *value, void *data) {
 static int PluginData_settype(PyObject *self, PyObject *value, void *data) {
        char *old;
        const char *new;
-       
+
        if (value == NULL) {
                PyErr_SetString(PyExc_TypeError, "Cannot delete this attribute");
                return -1;
@@ -349,11 +349,11 @@ static char Values_doc[] = "A Values object used for dispatching values to colle
 
 static PyObject *Values_new(PyTypeObject *type, PyObject *args, PyObject *kwds) {
        Values *self;
-       
+
        self = (Values *) PluginData_new(type, args, kwds);
        if (self == NULL)
                return NULL;
-       
+
        self->values = PyList_New(0);
        self->meta = PyDict_New();
        self->interval = 0;
@@ -367,12 +367,12 @@ static int Values_init(PyObject *s, PyObject *args, PyObject *kwds) {
        char *type = NULL, *plugin_instance = NULL, *type_instance = NULL, *plugin = NULL, *host = NULL;
        static char *kwlist[] = {"type", "values", "plugin_instance", "type_instance",
                        "plugin", "host", "time", "interval", "meta", NULL};
-       
+
        if (!PyArg_ParseTupleAndKeywords(args, kwds, "|etOetetetetddO", kwlist,
                        NULL, &type, &values, NULL, &plugin_instance, NULL, &type_instance,
                        NULL, &plugin, NULL, &host, &time, &interval, &meta))
                return -1;
-       
+
        if (type && plugin_get_ds(type) == NULL) {
                PyErr_Format(PyExc_TypeError, "Dataset %s not found", type);
                FreeAll();
@@ -394,18 +394,18 @@ static int Values_init(PyObject *s, PyObject *args, PyObject *kwds) {
        } else {
                Py_INCREF(values);
        }
-       
+
        if (meta == NULL) {
                meta = PyDict_New();
                PyErr_Clear();
        } else {
                Py_INCREF(meta);
        }
-       
+
        tmp = self->values;
        self->values = values;
        Py_XDECREF(tmp);
-       
+
        tmp = self->meta;
        self->meta = meta;
        Py_XDECREF(tmp);
@@ -418,7 +418,7 @@ static meta_data_t *cpy_build_meta(PyObject *meta) {
        int i, s;
        meta_data_t *m = NULL;
        PyObject *l;
-       
+
        if ((meta == NULL) || (meta == Py_None))
                return NULL;
 
@@ -437,7 +437,7 @@ static meta_data_t *cpy_build_meta(PyObject *meta) {
        for (i = 0; i < s; ++i) {
                const char *string, *keystring;
                PyObject *key, *value, *item, *tmp;
-               
+
                item = PyList_GET_ITEM(l, i);
                key = PyTuple_GET_ITEM(item, 0);
                Py_INCREF(key);
@@ -510,7 +510,7 @@ static PyObject *Values_dispatch(Values *self, PyObject *args, PyObject *kwds) {
        PyObject *values = self->values, *meta = self->meta;
        double time = self->data.time, interval = self->interval;
        char *host = NULL, *plugin = NULL, *plugin_instance = NULL, *type = NULL, *type_instance = NULL;
-       
+
        static char *kwlist[] = {"type", "values", "plugin_instance", "type_instance",
                        "plugin", "host", "time", "interval", "meta", NULL};
        if (!PyArg_ParseTupleAndKeywords(args, kwds, "|etOetetetetddO", kwlist,
@@ -619,7 +619,7 @@ static PyObject *Values_write(Values *self, PyObject *args, PyObject *kwds) {
        PyObject *values = self->values, *meta = self->meta;
        double time = self->data.time, interval = self->interval;
        char *host = NULL, *plugin = NULL, *plugin_instance = NULL, *type = NULL, *type_instance = NULL, *dest = NULL;
-       
+
        static char *kwlist[] = {"destination", "type", "values", "plugin_instance", "type_instance",
                        "plugin", "host", "time", "interval", "meta", NULL};
        if (!PyArg_ParseTupleAndKeywords(args, kwds, "et|etOetetetetdiO", kwlist, NULL, &dest,
@@ -718,7 +718,7 @@ static PyObject *Values_repr(PyObject *s) {
        PyObject *ret, *tmp;
        static PyObject *l_interval = NULL, *l_values = NULL, *l_meta = NULL, *l_closing = NULL;
        Values *self = (Values *) s;
-       
+
        if (l_interval == NULL)
                l_interval = cpy_string_to_unicode_or_bytes(",interval=");
        if (l_values == NULL)
@@ -727,10 +727,10 @@ static PyObject *Values_repr(PyObject *s) {
                l_meta = cpy_string_to_unicode_or_bytes(",meta=");
        if (l_closing == NULL)
                l_closing = cpy_string_to_unicode_or_bytes(")");
-       
+
        if (l_interval == NULL || l_values == NULL || l_meta == NULL || l_closing == NULL)
                return NULL;
-       
+
        ret = cpy_common_repr(s);
        if (self->interval != 0) {
                CPY_STRCAT(&ret, l_interval);
@@ -844,12 +844,12 @@ static int Notification_init(PyObject *s, PyObject *args, PyObject *kwds) {
        char *type = NULL, *plugin_instance = NULL, *type_instance = NULL, *plugin = NULL, *host = NULL;
        static char *kwlist[] = {"type", "message", "plugin_instance", "type_instance",
                        "plugin", "host", "time", "severity", NULL};
-       
+
        if (!PyArg_ParseTupleAndKeywords(args, kwds, "|etetetetetetdi", kwlist,
                        NULL, &type, NULL, &message, NULL, &plugin_instance, NULL, &type_instance,
                        NULL, &plugin, NULL, &host, &time, &severity))
                return -1;
-       
+
        if (type && plugin_get_ds(type) == NULL) {
                PyErr_Format(PyExc_TypeError, "Dataset %s not found", type);
                FreeAll();
@@ -879,7 +879,7 @@ static PyObject *Notification_dispatch(Notification *self, PyObject *args, PyObj
        int severity = self->severity;
        char *host = NULL, *plugin = NULL, *plugin_instance = NULL, *type = NULL, *type_instance = NULL;
        char *message = NULL;
-       
+
        static char *kwlist[] = {"type", "message", "plugin_instance", "type_instance",
                        "plugin", "host", "time", "severity", NULL};
        if (!PyArg_ParseTupleAndKeywords(args, kwds, "|etetetetetetdi", kwlist,
@@ -927,11 +927,11 @@ static PyObject *Notification_dispatch(Notification *self, PyObject *args, PyObj
 
 static PyObject *Notification_new(PyTypeObject *type, PyObject *args, PyObject *kwds) {
        Notification *self;
-       
+
        self = (Notification *) PluginData_new(type, args, kwds);
        if (self == NULL)
                return NULL;
-       
+
        self->message[0] = 0;
        self->severity = 0;
        return (PyObject *) self;
@@ -940,7 +940,7 @@ static PyObject *Notification_new(PyTypeObject *type, PyObject *args, PyObject *
 static int Notification_setstring(PyObject *self, PyObject *value, void *data) {
        char *old;
        const char *new;
-       
+
        if (value == NULL) {
                PyErr_SetString(PyExc_TypeError, "Cannot delete this attribute");
                return -1;
@@ -961,17 +961,17 @@ static PyObject *Notification_repr(PyObject *s) {
        PyObject *ret, *tmp;
        static PyObject *l_severity = NULL, *l_message = NULL, *l_closing = NULL;
        Notification *self = (Notification *) s;
-       
+
        if (l_severity == NULL)
                l_severity = cpy_string_to_unicode_or_bytes(",severity=");
        if (l_message == NULL)
                l_message = cpy_string_to_unicode_or_bytes(",message=");
        if (l_closing == NULL)
                l_closing = cpy_string_to_unicode_or_bytes(")");
-       
+
        if (l_severity == NULL || l_message == NULL || l_closing == NULL)
                return NULL;
-       
+
        ret = cpy_common_repr(s);
        if (self->severity != 0) {
                CPY_STRCAT(&ret, l_severity);
index 4e3de56..919a831 100644 (file)
@@ -130,7 +130,7 @@ static redis_query_t *redis_config_query (oconfig_item_t *ci) /* {{{ */
 
     rq = calloc(1, sizeof(*rq));
     if (rq == NULL) {
-        ERROR("redis plugin: calloca failed adding redis_query.");
+        ERROR("redis plugin: calloc failed adding redis_query.");
         return NULL;
     }
     status = cf_util_get_string_buffer(ci, rq->query, sizeof(rq->query));
index 667c2fa..7ee3024 100644 (file)
@@ -328,10 +328,9 @@ static int cr_config_router (oconfig_item_t *ci) /* {{{ */
   int status;
   int i;
 
-  router_data = malloc (sizeof (*router_data));
+  router_data = calloc (1, sizeof (*router_data));
   if (router_data == NULL)
     return (-1);
-  memset (router_data, 0, sizeof (*router_data));
   router_data->connection = NULL;
   router_data->node = NULL;
   router_data->service = NULL;
index 5d98de8..3a6c985 100644 (file)
@@ -95,7 +95,7 @@ static int value_list_to_string (char *buffer, int buffer_len,
       status = ssnprintf (buffer + offset, buffer_len - offset,
           ":%llu", vl->values[i].counter);
     }
-    else if (ds->ds[i].type == DS_TYPE_GAUGE) 
+    else if (ds->ds[i].type == DS_TYPE_GAUGE)
     {
       status = ssnprintf (buffer + offset, buffer_len - offset,
           ":%f", vl->values[i].gauge);
@@ -107,7 +107,7 @@ static int value_list_to_string (char *buffer, int buffer_len,
     else /* if (ds->ds[i].type == DS_TYPE_ABSOLUTE) */ {
       status = ssnprintf (buffer + offset, buffer_len - offset,
          ":%"PRIu64, vl->values[i].absolute);
+
     }
 
     if ((status < 1) || (status >= (buffer_len - offset)))
index fd5fb56..b45f8d9 100644 (file)
@@ -166,7 +166,7 @@ static int srrd_update (char *filename, char *template,
        assert (template == NULL);
 
        new_argc = 2 + argc;
-       new_argv = (char **) malloc ((new_argc + 1) * sizeof (char *));
+       new_argv = malloc ((new_argc + 1) * sizeof (*new_argv));
        if (new_argv == NULL)
        {
                ERROR ("rrdtool plugin: malloc failed.");
@@ -442,7 +442,7 @@ static void *rrd_queue_thread (void __attribute__((unused)) *data)
                }
 
                /* Update `tv_next_update' */
-               if (write_rate > 0.0) 
+               if (write_rate > 0.0)
                 {
                   gettimeofday (&tv_now, /* timezone = */ NULL);
                   tv_next_update.tv_sec = tv_now.tv_sec;
@@ -480,7 +480,7 @@ static int rrd_queue_enqueue (const char *filename,
 {
   rrd_queue_t *queue_entry;
 
-  queue_entry = (rrd_queue_t *) malloc (sizeof (rrd_queue_t));
+  queue_entry = malloc (sizeof (*queue_entry));
   if (queue_entry == NULL)
     return (-1);
 
@@ -522,7 +522,7 @@ static int rrd_queue_dequeue (const char *filename,
   {
     if (strcmp (this->filename, filename) == 0)
       break;
-    
+
     prev = this;
     this = this->next;
   }
@@ -607,7 +607,7 @@ static void rrd_cache_flush (cdtime_t timeout)
                }
        } /* while (c_avl_iterator_next) */
        c_avl_iterator_destroy (iter);
-       
+
        for (i = 0; i < keys_num; i++)
        {
                if (c_avl_remove (cache, keys[i], (void *) &key, (void *) &rc) != 0)
@@ -1087,7 +1087,7 @@ static int rrd_config (const char *key, const char *value)
                while ((ptr = strtok_r (dummy, ", \t", &saveptr)) != NULL)
                {
                        dummy = NULL;
-                       
+
                        tmp_alloc = realloc (rrdcreate_config.timespans,
                                        sizeof (int) * (rrdcreate_config.timespans_num + 1));
                        if (tmp_alloc == NULL)
index c678dec..852b41c 100644 (file)
@@ -18,7 +18,7 @@
  *
  * Authors:
  *   Florian octo Forster <octo at collectd.org>
- *   
+ *
  *   Lubos Stanek <lubek at users.sourceforge.net> Wed Oct 27, 2006
  *   - config ExtendedSensorNaming option
  *   - precise sensor feature selection (chip-bus-address/type-feature)
@@ -76,7 +76,7 @@ struct sensors_labeltypes_s
 typedef struct sensors_labeltypes_s sensors_labeltypes_t;
 
 /* finite list of known labels extracted from lm_sensors */
-static sensors_labeltypes_t known_features[] = 
+static sensors_labeltypes_t known_features[] =
 {
        { "fan1", SENSOR_TYPE_FANSPEED },
        { "fan2", SENSOR_TYPE_FANSPEED },
@@ -289,7 +289,7 @@ static int sensors_load_conf (void)
 
        FILE *fh = NULL;
        featurelist_t *last_feature = NULL;
-       
+
        const sensors_chip_name *chip;
        int chip_num;
 
@@ -378,13 +378,12 @@ static int sensors_load_conf (void)
                                continue;
                        }
 
-                       fl = (featurelist_t *) malloc (sizeof (featurelist_t));
+                       fl = calloc (1, sizeof (*fl));
                        if (fl == NULL)
                        {
-                               ERROR ("sensors plugin: malloc failed.");
+                               ERROR ("sensors plugin: calloc failed.");
                                continue;
                        }
-                       memset (fl, '\0', sizeof (featurelist_t));
 
                        fl->chip = chip;
                        fl->data = feature;
@@ -435,13 +434,12 @@ static int sensors_load_conf (void)
                                                && (subfeature->type != SENSORS_SUBFEATURE_POWER_INPUT))
                                        continue;
 
-                               fl = (featurelist_t *) malloc (sizeof (featurelist_t));
+                               fl = calloc (1, sizeof (*fl));
                                if (fl == NULL)
                                {
-                                       ERROR ("sensors plugin: malloc failed.");
+                                       ERROR ("sensors plugin: calloc failed.");
                                        continue;
                                }
-                               memset (fl, '\0', sizeof (featurelist_t));
 
                                fl->chip = chip;
                                fl->feature = feature;
index ad5c70c..6c781f8 100644 (file)
@@ -72,11 +72,10 @@ static int sigrok_config_device(oconfig_item_t *ci)
        struct config_device *cfdev;
        int i;
 
-       if (!(cfdev = malloc(sizeof(struct config_device)))) {
-               ERROR("sigrok plugin: malloc() failed.");
+       if (!(cfdev = calloc(1, sizeof(*cfdev)))) {
+               ERROR("sigrok plugin: calloc failed.");
                return -1;
        }
-       memset(cfdev, 0, sizeof(*cfdev));
        if (cf_util_get_string(ci, &cfdev->name)) {
                free(cfdev);
                WARNING("sigrok plugin: Invalid device name.");
@@ -236,14 +235,14 @@ static int sigrok_init_driver(struct config_device *cfdev,
 
        drvopts = NULL;
        if (cfdev->conn) {
-               if (!(src = malloc(sizeof(struct sr_config))))
+               if (!(src = malloc(sizeof(*src))))
                        return -1;
                src->key = SR_CONF_CONN;
                src->data = g_variant_new_string(cfdev->conn);
                drvopts = g_slist_append(drvopts, src);
        }
        if (cfdev->serialcomm) {
-               if (!(src = malloc(sizeof(struct sr_config))))
+               if (!(src = malloc(sizeof(*src))))
                        return -1;
                src->key = SR_CONF_SERIALCOMM;
                src->data = g_variant_new_string(cfdev->serialcomm);
index 3ccf60c..8b21907 100644 (file)
@@ -310,7 +310,7 @@ static int csnmp_config_add_data_values (data_definition_t *dd, oconfig_item_t *
 
   sfree (dd->values);
   dd->values_len = 0;
-  dd->values = (oid_t *) malloc (sizeof (oid_t) * ci->values_num);
+  dd->values = malloc (sizeof (*dd->values) * ci->values_num);
   if (dd->values == NULL)
     return (-1);
   dd->values_len = (size_t) ci->values_num;
@@ -384,10 +384,9 @@ static int csnmp_config_add_data (oconfig_item_t *ci)
   int status = 0;
   int i;
 
-  dd = (data_definition_t *) malloc (sizeof (data_definition_t));
+  dd = calloc (1, sizeof (*dd));
   if (dd == NULL)
     return (-1);
-  memset (dd, '\0', sizeof (data_definition_t));
 
   status = cf_util_get_string(ci, &dd->name);
   if (status != 0)
@@ -646,10 +645,9 @@ static int csnmp_config_add_host (oconfig_item_t *ci)
   char cb_name[DATA_MAX_NAME_LEN];
   user_data_t cb_data;
 
-  hd = (host_definition_t *) malloc (sizeof (host_definition_t));
+  hd = calloc (1, sizeof (*hd));
   if (hd == NULL)
     return (-1);
-  memset (hd, '\0', sizeof (host_definition_t));
   hd->version = 2;
   C_COMPLAIN_INIT (&hd->complaint);
 
@@ -1162,13 +1160,12 @@ static int csnmp_instance_list_add (csnmp_list_instances_t **head,
 
   csnmp_oid_init (&vb_name, vb->name, vb->name_length);
 
-  il = malloc (sizeof (*il));
+  il = calloc (1, sizeof (*il));
   if (il == NULL)
   {
-    ERROR ("snmp plugin: malloc failed.");
+    ERROR ("snmp plugin: calloc failed.");
     return (-1);
   }
-  memset (il, 0, sizeof (*il));
   il->next = NULL;
 
   status = csnmp_oid_suffix (&il->suffix, &vb_name, &dd->instance.oid);
@@ -1607,14 +1604,13 @@ static int csnmp_read_table (host_definition_t *host, data_definition_t *data)
           continue;
         }
 
-        vt = malloc (sizeof (*vt));
+        vt = calloc (1, sizeof (*vt));
         if (vt == NULL)
         {
-          ERROR ("snmp plugin: malloc failed.");
+          ERROR ("snmp plugin: calloc failed.");
           status = -1;
           break;
         }
-        memset (vt, 0, sizeof (*vt));
 
         vt->value = csnmp_value_list_to_value (vb, ds->ds[i].type,
             data->scale, data->shift, host->name, data->name);
@@ -1710,7 +1706,7 @@ static int csnmp_read_value (host_definition_t *host, data_definition_t *data)
   }
 
   vl.values_len = ds->ds_num;
-  vl.values = (value_t *) malloc (sizeof (value_t) * vl.values_len);
+  vl.values = malloc (sizeof (*vl.values) * vl.values_len);
   if (vl.values == NULL)
     return (-1);
   for (i = 0; i < vl.values_len; i++)
index d0a677e..5b7a6f1 100644 (file)
@@ -127,14 +127,13 @@ static statsd_metric_t *statsd_metric_lookup_unsafe (char const *name, /* {{{ */
     return (NULL);
   }
 
-  metric = malloc (sizeof (*metric));
+  metric = calloc (1, sizeof (*metric));
   if (metric == NULL)
   {
-    ERROR ("statsd plugin: malloc failed.");
+    ERROR ("statsd plugin: calloc failed.");
     sfree (key_copy);
     return (NULL);
   }
-  memset (metric, 0, sizeof (*metric));
 
   metric->type = type;
   metric->latency = NULL;
index bb9b58a..2d794fc 100644 (file)
@@ -290,10 +290,9 @@ static int tcsv_config_add_metric(oconfig_item_t *ci){
     int status;
     int i;
 
-    md = (metric_definition_t *)malloc(sizeof(*md));
+    md = calloc(1, sizeof(*md));
     if (md == NULL)
         return (-1);
-    memset(md, 0, sizeof(*md));
     md->name = NULL;
     md->type = NULL;
     md->instance = NULL;
@@ -426,10 +425,9 @@ static int tcsv_config_add_file(oconfig_item_t *ci)
     char cb_name[DATA_MAX_NAME_LEN];
     user_data_t cb_data;
 
-    id = malloc(sizeof(*id));
+    id = calloc(1, sizeof(*id));
     if (id == NULL)
         return (-1);
-    memset(id, 0, sizeof(*id));
     id->instance = NULL;
     id->path = NULL;
     id->metric_list = NULL;
index 14fb541..55b72ac 100644 (file)
@@ -126,13 +126,12 @@ static int tn_create (const oconfig_item_t *ci, void **user_data) /* {{{ */
   int status;
   int i;
 
-  data = (tn_data_t *) malloc (sizeof (*data));
+  data = calloc (1, sizeof (*data));
   if (data == NULL)
   {
-    ERROR ("tn_create: malloc failed.");
+    ERROR ("tn_create: calloc failed.");
     return (-ENOMEM);
   }
-  memset (data, 0, sizeof (*data));
 
   data->message = NULL;
   data->severity = 0;
index bd8f9e5..545fa35 100644 (file)
@@ -61,7 +61,7 @@ static char *tr_strdup (const char *orig) /* {{{ */
     return (NULL);
 
   sz = strlen (orig) + 1;
-  dest = (char *) malloc (sz);
+  dest = malloc (sz);
   if (dest == NULL)
     return (NULL);
 
@@ -102,13 +102,12 @@ static int tr_config_add_action (tr_action_t **dest, /* {{{ */
     return (-1);
   }
 
-  act = (tr_action_t *) malloc (sizeof (*act));
+  act = calloc (1, sizeof (*act));
   if (act == NULL)
   {
-    ERROR ("tr_config_add_action: malloc failed.");
+    ERROR ("tr_config_add_action: calloc failed.");
     return (-ENOMEM);
   }
-  memset (act, 0, sizeof (*act));
 
   act->replacement = NULL;
   act->may_be_empty = may_be_empty;
@@ -244,13 +243,12 @@ static int tr_create (const oconfig_item_t *ci, void **user_data) /* {{{ */
   int status;
   int i;
 
-  data = (tr_data_t *) malloc (sizeof (*data));
+  data = calloc (1, sizeof (*data));
   if (data == NULL)
   {
-    ERROR ("tr_create: malloc failed.");
+    ERROR ("tr_create: calloc failed.");
     return (-ENOMEM);
   }
-  memset (data, 0, sizeof (*data));
 
   data->host = NULL;
   data->plugin = NULL;
index 6169fa0..3ac399c 100644 (file)
@@ -387,13 +387,12 @@ static int ts_create (const oconfig_item_t *ci, void **user_data) /* {{{ */
        int status;
        int i;
 
-       data = (ts_data_t *) malloc (sizeof (*data));
+       data = calloc (1, sizeof (*data));
        if (data == NULL)
        {
-               ERROR ("ts_create: malloc failed.");
+               ERROR ("ts_create: calloc failed.");
                return (-ENOMEM);
        }
-       memset (data, 0, sizeof (*data));
 
        data->factor = NAN;
        data->offset = NAN;
index daeaf8b..faad0bf 100644 (file)
@@ -87,13 +87,12 @@ static int ts_create (const oconfig_item_t *ci, void **user_data) /* {{{ */
   int status;
   int i;
 
-  data = (ts_data_t *) malloc (sizeof (*data));
+  data = calloc (1, sizeof (*data));
   if (data == NULL)
   {
-    ERROR ("ts_create: malloc failed.");
+    ERROR ("ts_create: calloc failed.");
     return (-ENOMEM);
   }
-  memset (data, 0, sizeof (*data));
 
   data->host = NULL;
   data->plugin = NULL;
index 5b47ff5..6bc3384 100644 (file)
@@ -385,10 +385,9 @@ static port_entry_t *conn_get_port_entry (uint16_t port, int create)
 
   if ((ret == NULL) && (create != 0))
   {
-    ret = (port_entry_t *) malloc (sizeof (port_entry_t));
+    ret = calloc (1, sizeof (*ret));
     if (ret == NULL)
       return (NULL);
-    memset (ret, '\0', sizeof (port_entry_t));
 
     ret->port = port;
     ret->next = port_list_head;
@@ -832,7 +831,7 @@ static int conn_read (void)
     return (-1);
   }
 
-  buffer = (char *) malloc (buffer_len);
+  buffer = malloc (buffer_len);
   if (buffer == NULL)
   {
     ERROR ("tcpconns plugin: malloc failed.");
index 058eb7c..41f58e5 100644 (file)
@@ -83,13 +83,12 @@ static int tss2_add_vserver (int vserver_port)
        }
 
        /* Allocate memory */
-       entry = (vserver_list_t *) malloc (sizeof (vserver_list_t));
+       entry = calloc (1, sizeof (*entry));
        if (entry == NULL)
        {
-               ERROR ("teamspeak2 plugin: malloc failed.");
+               ERROR ("teamspeak2 plugin: calloc failed.");
                return (-1);
        }
-       memset (entry, 0, sizeof (vserver_list_t));
 
        /* Save data */
        entry->port = vserver_port;
@@ -140,7 +139,7 @@ static void tss2_submit_gauge (const char *plugin_instance,
        if (type_instance != NULL)
                sstrncpy (vl.type_instance, type_instance,
                                sizeof (vl.type_instance));
-       
+
        plugin_dispatch_values (&vl);
 } /* void tss2_submit_gauge */
 
@@ -352,7 +351,7 @@ static int tss2_receive_line (FILE *fh, char *buffer, int buffer_size)
         * Receive a single line from the given file object
         */
        char *temp;
-        
+
        /*
         * fgets is blocking but much easier then doing anything else
         * TODO: Non-blocking Version would be safer
@@ -435,7 +434,7 @@ static int tss2_vserver_gapl (FILE *read_fh, FILE *write_fh,
                char buffer[4096];
                char *value;
                char *endptr = NULL;
-               
+
                status = tss2_receive_line (read_fh, buffer, sizeof (buffer));
                if (status != 0)
                {
@@ -446,7 +445,7 @@ static int tss2_vserver_gapl (FILE *read_fh, FILE *write_fh,
                        return (-1);
                }
                buffer[sizeof (buffer) - 1] = 0;
-               
+
                if (strncmp ("average_packet_loss=", buffer,
                                        strlen ("average_packet_loss=")) == 0)
                {
@@ -462,9 +461,9 @@ static int tss2_vserver_gapl (FILE *read_fh, FILE *write_fh,
                                }
                                value++;
                        }
-                       
+
                        value = &buffer[20];
-                       
+
                        packet_loss = strtod (value, &endptr);
                        if (value == endptr)
                        {
@@ -489,7 +488,7 @@ static int tss2_vserver_gapl (FILE *read_fh, FILE *write_fh,
                                        buffer);
                }
        }
-       
+
        *ret_value = packet_loss;
        return (0);
 } /* int tss2_vserver_gapl */
@@ -559,7 +558,7 @@ static int tss2_read_vserver (vserver_list_t *vserver)
                char *key;
                char *value;
                char *endptr = NULL;
-               
+
                /* Read one line of the server's answer */
                status = tss2_receive_line (read_fh, buffer, sizeof (buffer));
                if (status != 0)
@@ -754,7 +753,7 @@ static int tss2_config (const char *key, const char *value)
        {
                /* Server variable found */
                int status;
-               
+
                status = tss2_add_vserver (atoi (value));
                if (status != 0)
                        return (1);
@@ -804,7 +803,7 @@ static int tss2_read (void)
                        continue;
                }
        }
-       
+
        if (success == 0)
                return (-1);
     return (0);
@@ -833,7 +832,7 @@ static int tss2_shutdown(void)
        /* Get rid of the configuration */
        sfree (config_host);
        sfree (config_port);
-       
+
     return (0);
 } /* int tss2_shutdown */
 
index ed83129..624ab7a 100644 (file)
@@ -70,7 +70,7 @@ static int ut_threshold_add (const threshold_t *th)
     return (-1);
   }
 
-  th_copy = (threshold_t *) malloc (sizeof (threshold_t));
+  th_copy = malloc (sizeof (*th_copy));
   if (th_copy == NULL)
   {
     sfree (name_copy);
index d5034e9..0d81524 100644 (file)
@@ -129,6 +129,8 @@ mysql_innodb_row_lock       value:DERIVE:0:U
 mysql_innodb_rows      value:DERIVE:0:U
 mysql_select           value:DERIVE:0:U
 mysql_sort             value:DERIVE:0:U
+mysql_sort_merge_passes        value:DERIVE:0:U
+mysql_sort_rows                value:DERIVE:0:U
 nfs_procedure          value:DERIVE:0:U
 nginx_connections      value:GAUGE:0:U
 nginx_requests         value:DERIVE:0:U
index 795f7ab..1840e34 100644 (file)
@@ -368,7 +368,7 @@ static void *us_server_thread (void __attribute__((unused)) *arg)
                        pthread_exit ((void *) 1);
                }
 
-               remote_fd = (int *) malloc (sizeof (int));
+               remote_fd = malloc (sizeof (*remote_fd));
                if (remote_fd == NULL)
                {
                        char errbuf[1024];
index 139c976..a4ee4ef 100644 (file)
@@ -3,7 +3,7 @@
  * Copyright (C) 2005-2007  Sebastian Harl
  * Copyright (C) 2005       Niki W. Waibel
  * Copyright (C) 2005-2007  Florian octo Forster
- * Copyright (C) 2008       Oleg King 
+ * Copyright (C) 2008       Oleg King
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the
@@ -77,7 +77,7 @@ static int users_read (void)
 
        users_submit (users);
 /* #endif HAVE_GETUTXENT */
-       
+
 #elif HAVE_GETUTENT
        unsigned int users = 0;
        struct utmp *entry = NULL;
@@ -106,7 +106,7 @@ static int users_read (void)
        us = sg_get_user_stats ();
 # endif
        if (us == NULL)
-               return (-1);   
+               return (-1);
 
        users_submit ((gauge_t)
 # if HAVE_LIBSTATGRAB_0_90
index 43244f6..69af2e4 100644 (file)
@@ -163,7 +163,7 @@ int handle_putval (FILE *fh, char *buffer)
        sfree (identifier_copy);
 
        vl.values_len = ds->ds_num;
-       vl.values = (value_t *) malloc (vl.values_len * sizeof (value_t));
+       vl.values = malloc (vl.values_len * sizeof (*vl.values));
        if (vl.values == NULL)
        {
                print_to_socket (fh, "-1 malloc failed.\n");
index c7be9f0..74c3a81 100644 (file)
@@ -207,7 +207,7 @@ static int udb_result_submit (udb_result_t *r, /* {{{ */
   vl.values = (value_t *) calloc (r->values_num, sizeof (value_t));
   if (vl.values == NULL)
   {
-    ERROR ("db query utils: malloc failed.");
+    ERROR ("db query utils: calloc failed.");
     return (-1);
   }
   vl.values_len = r_area->ds->ds_num;
@@ -390,7 +390,7 @@ static int udb_result_prepare_result (udb_result_t const *r, /* {{{ */
       = (size_t *) calloc (r->instances_num, sizeof (size_t));
     if (prep_area->instances_pos == NULL)
     {
-      ERROR ("db query utils: udb_result_prepare_result: malloc failed.");
+      ERROR ("db query utils: udb_result_prepare_result: calloc failed.");
       BAIL_OUT (-ENOMEM);
     }
 
@@ -398,7 +398,7 @@ static int udb_result_prepare_result (udb_result_t const *r, /* {{{ */
       = (char **) calloc (r->instances_num, sizeof (char *));
     if (prep_area->instances_buffer == NULL)
     {
-      ERROR ("db query utils: udb_result_prepare_result: malloc failed.");
+      ERROR ("db query utils: udb_result_prepare_result: calloc failed.");
       BAIL_OUT (-ENOMEM);
     }
   } /* if (r->instances_num > 0) */
@@ -407,7 +407,7 @@ static int udb_result_prepare_result (udb_result_t const *r, /* {{{ */
     = (size_t *) calloc (r->values_num, sizeof (size_t));
   if (prep_area->values_pos == NULL)
   {
-    ERROR ("db query utils: udb_result_prepare_result: malloc failed.");
+    ERROR ("db query utils: udb_result_prepare_result: calloc failed.");
     BAIL_OUT (-ENOMEM);
   }
 
@@ -415,7 +415,7 @@ static int udb_result_prepare_result (udb_result_t const *r, /* {{{ */
     = (char **) calloc (r->values_num, sizeof (char *));
   if (prep_area->values_buffer == NULL)
   {
-    ERROR ("db query utils: udb_result_prepare_result: malloc failed.");
+    ERROR ("db query utils: udb_result_prepare_result: calloc failed.");
     BAIL_OUT (-ENOMEM);
   }
 
@@ -423,7 +423,7 @@ static int udb_result_prepare_result (udb_result_t const *r, /* {{{ */
     = (size_t *) calloc (r->metadata_num, sizeof (size_t));
   if (prep_area->metadata_pos == NULL)
   {
-    ERROR ("db query utils: udb_result_prepare_result: malloc failed.");
+    ERROR ("db query utils: udb_result_prepare_result: calloc failed.");
     BAIL_OUT (-ENOMEM);
   }
 
@@ -431,7 +431,7 @@ static int udb_result_prepare_result (udb_result_t const *r, /* {{{ */
     = (char **) calloc (r->metadata_num, sizeof (char *));
   if (prep_area->metadata_buffer == NULL)
   {
-    ERROR ("db query utils: udb_result_prepare_result: malloc failed.");
+    ERROR ("db query utils: udb_result_prepare_result: calloc failed.");
     BAIL_OUT (-ENOMEM);
   }
 
@@ -550,13 +550,12 @@ static int udb_result_create (const char *query_name, /* {{{ */
         ci->values_num, (ci->values_num == 1) ? "" : "s");
   }
 
-  r = (udb_result_t *) malloc (sizeof (*r));
+  r = calloc (1, sizeof (*r));
   if (r == NULL)
   {
-    ERROR ("db query utils: malloc failed.");
+    ERROR ("db query utils: calloc failed.");
     return (-1);
   }
-  memset (r, 0, sizeof (*r));
   r->type = NULL;
   r->instance_prefix = NULL;
   r->instances = NULL;
@@ -678,13 +677,12 @@ int udb_query_create (udb_query_t ***ret_query_list, /* {{{ */
     return (-1);
   }
 
-  q = (udb_query_t *) malloc (sizeof (*q));
+  q = calloc (1, sizeof (*q));
   if (q == NULL)
   {
-    ERROR ("db query utils: malloc failed.");
+    ERROR ("db query utils: calloc failed.");
     return (-1);
   }
-  memset (q, 0, sizeof (*q));
   q->min_version = 0;
   q->max_version = UINT_MAX;
 
@@ -1072,17 +1070,16 @@ udb_query_allocate_preparation_area (udb_query_t *q) /* {{{ */
   udb_result_preparation_area_t **next_r_area;
   udb_result_t *r;
 
-  q_area = malloc (sizeof (*q_area));
+  q_area = calloc (1, sizeof (*q_area));
   if (q_area == NULL)
     return NULL;
-  memset (q_area, 0, sizeof (*q_area));
 
   next_r_area = &q_area->result_prep_areas;
   for (r = q->results; r != NULL; r = r->next)
   {
     udb_result_preparation_area_t *r_area;
 
-    r_area = malloc (sizeof (*r_area));
+    r_area = calloc (1, sizeof (*r_area));
     if (r_area == NULL)
     {
       udb_result_preparation_area_t *a = q_area->result_prep_areas;
@@ -1098,8 +1095,6 @@ udb_query_allocate_preparation_area (udb_query_t *q) /* {{{ */
       return NULL;
     }
 
-    memset (r_area, 0, sizeof (*r_area));
-
     *next_r_area = r_area;
     next_r_area  = &r_area->next;
   }
index 08b10bd..8586adb 100644 (file)
@@ -41,7 +41,7 @@ typedef struct udb_query_preparation_area_s udb_query_preparation_area_t;
 typedef int (*udb_query_create_callback_t) (udb_query_t *q,
     oconfig_item_t *ci);
 
-/* 
+/*
  * Public functions
  */
 int udb_query_create (udb_query_t ***ret_query_list,
@@ -62,7 +62,7 @@ const char *udb_query_get_statement (udb_query_t *q);
 void  udb_query_set_user_data (udb_query_t *q, void *user_data);
 void *udb_query_get_user_data (udb_query_t *q);
 
-/* 
+/*
  * udb_query_check_version
  *
  * Returns 0 if the query is NOT suitable for `version' and >0 if the
index 2c7a59d..991d346 100644 (file)
@@ -209,7 +209,7 @@ static void ignore_list_add (const struct in6_addr *addr)
     if (ignore_list_match (addr) != 0)
        return;
 
-    new = malloc (sizeof (ip_list_t));
+    new = malloc (sizeof (*new));
     if (new == NULL)
     {
        perror ("malloc");
index ef7de0a..5c547c6 100644 (file)
@@ -3,10 +3,10 @@
  * Copyright (C) 2006       Florian octo Forster
  * Copyright (C) 2002       The Measurement Factory, Inc.
  * All rights reserved.
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
- * 
+ *
  * 1. Redistributions of source code must retain the above copyright notice,
  *    this list of conditions and the following disclaimer.
  * 2. Redistributions in binary form must reproduce the above copyright notice,
index cbd1506..f27c082 100644 (file)
@@ -209,10 +209,9 @@ fbhash_t *fbh_create (const char *file) /* {{{ */
   if (file == NULL)
     return (NULL);
 
-  h = malloc (sizeof (*h));
+  h = calloc (1, sizeof (*h));
   if (h == NULL)
     return (NULL);
-  memset (h, 0, sizeof (*h));
 
   h->filename = strdup (file);
   if (h->filename == NULL)
index 7a607e4..41af00c 100644 (file)
  *   Florian Forster <ff at octo.it>
  **/
 
-#include <math.h>
-#include <limits.h>
-
 #include "collectd.h"
 #include "plugin.h"
 #include "utils_latency.h"
 #include "common.h"
 
+#include <math.h>
+#include <limits.h>
+
 #ifndef LLONG_MAX
 # define LLONG_MAX 9223372036854775807LL
 #endif
@@ -121,10 +121,9 @@ latency_counter_t *latency_counter_create (void) /* {{{ */
 {
   latency_counter_t *lc;
 
-  lc = malloc (sizeof (*lc));
+  lc = calloc (1, sizeof (*lc));
   if (lc == NULL)
     return (NULL);
-  memset (lc, 0, sizeof (*lc));
 
   latency_counter_reset (lc);
   lc->bin_width = HISTOGRAM_DEFAULT_BIN_WIDTH;
index c329ba4..a36882c 100644 (file)
  *   Niki W. Waibel <niki.waibel@gmx.net>
 **/
 
-#include "collectd.h"
-#include "utils_mount.h"
-
-#include "common.h" /* sstrncpy() et alii */
-#include "plugin.h" /* ERROR() macro */
+#if HAVE_CONFIG_H
+# include "config.h"
+#endif
 
 #if HAVE_XFS_XQM_H
+# define _GNU_SOURCE
 # include <xfs/xqm.h>
 #define XFS_SUPER_MAGIC_STR "XFSB"
 #define XFS_SUPER_MAGIC2_STR "BSFX"
 #endif
 
+#include "collectd.h"
+#include "utils_mount.h"
+
+#include "common.h" /* sstrncpy() et alii */
+#include "plugin.h" /* ERROR() macro */
+
+
 #if HAVE_GETVFSSTAT
 #  if HAVE_SYS_TYPES_H
 #    include <sys/types.h>
@@ -461,10 +467,8 @@ static cu_mount_t *cu_mount_getfsstat (void)
                return (NULL);
        }
 
-       if ((buf = (STRUCT_STATFS *) malloc (bufsize * sizeof (STRUCT_STATFS)))
-                       == NULL)
+       if ((buf = calloc (bufsize, sizeof (*buf))) == NULL)
                return (NULL);
-       memset (buf, '\0', bufsize * sizeof (STRUCT_STATFS));
 
        /* The bufsize needs to be passed in bytes. Really. This is not in the
         * manpage.. -octo */
@@ -481,10 +485,9 @@ static cu_mount_t *cu_mount_getfsstat (void)
 
        for (i = 0; i < num; i++)
        {
-               if ((new = malloc (sizeof (cu_mount_t))) == NULL)
+               if ((new = calloc (1, sizeof (*new))) == NULL)
                        break;
-               memset (new, '\0', sizeof (cu_mount_t));
-               
+
                /* Copy values from `struct mnttab' */
                new->dir         = sstrdup (buf[i].f_mntonname);
                new->spec_device = sstrdup (buf[i].f_mntfromname);
@@ -535,10 +538,9 @@ static cu_mount_t *cu_mount_gen_getmntent (void)
 
        while (getmntent (fp, &mt) == 0)
        {
-               if ((new = malloc (sizeof (cu_mount_t))) == NULL)
+               if ((new = calloc (1, sizeof (*new))) == NULL)
                        break;
-               memset (new, '\0', sizeof (cu_mount_t));
-               
+
                /* Copy values from `struct mnttab' */
                new->dir         = sstrdup (mt.mnt_mountp);
                new->spec_device = sstrdup (mt.mnt_special);
@@ -593,9 +595,8 @@ static cu_mount_t *cu_mount_getmntent (void)
 
        while (getmntent_r (fp, &me, mntbuf, sizeof (mntbuf) ))
        {
-               if ((new = malloc (sizeof (cu_mount_t))) == NULL)
+               if ((new = calloc (1, sizeof (*new))) == NULL)
                        break;
-               memset (new, '\0', sizeof (cu_mount_t));
 
                /* Copy values from `struct mntent *' */
                new->dir         = sstrdup (me.mnt_dir);
@@ -650,10 +651,9 @@ static cu_mount_t *cu_mount_getmntent (void)
 
        while ((me = getmntent (fp)) != NULL)
        {
-               if ((new = malloc (sizeof (cu_mount_t))) == NULL)
+               if ((new = calloc (1, sizeof (*new))) == NULL)
                        break;
-               memset (new, '\0', sizeof (cu_mount_t));
-               
+
                /* Copy values from `struct mntent *' */
                new->dir         = sstrdup (me->mnt_dir);
                new->spec_device = sstrdup (me->mnt_fsname);
@@ -814,7 +814,7 @@ cu_mount_getoptionvalue(char *line, const char *keyword)
                        if((p-r) == 1) {
                                return NULL;
                        }
-                       m = (char *)smalloc(p-r+1);
+                       m = smalloc(p-r+1);
                        sstrncpy(m, r, p-r+1);
                        return m;
                }
index 7f06f29..69da040 100644 (file)
@@ -92,7 +92,7 @@ int parse_string (char **ret_buffer, char **ret_string)
       buffer++;
     }
   }
-  
+
   /* Eat up trailing spaces */
   while (isspace ((int) *buffer))
     buffer++;
index 06e4f21..fb04201 100644 (file)
@@ -113,13 +113,12 @@ static srrd_create_args_t *srrd_create_args_create (const char *filename,
 {
   srrd_create_args_t *args;
 
-  args = malloc (sizeof (*args));
+  args = calloc (1, sizeof (*args));
   if (args == NULL)
   {
-    ERROR ("srrd_create_args_create: malloc failed.");
+    ERROR ("srrd_create_args_create: calloc failed.");
     return (NULL);
   }
-  memset (args, 0, sizeof (*args));
   args->filename = NULL;
   args->pdp_step = pdp_step;
   args->last_up = last_up;
@@ -216,9 +215,8 @@ static int rra_get (char ***ret, const value_list_t *vl, /* {{{ */
   rra_max = rts_num * rra_types_num;
   assert (rra_max > 0);
 
-  if ((rra_def = malloc ((rra_max + 1) * sizeof (*rra_def))) == NULL)
+  if ((rra_def = calloc (rra_max + 1, sizeof (*rra_def))) == NULL)
     return (-1);
-  memset (rra_def, 0, (rra_max + 1) * sizeof (*rra_def));
   rra_num = 0;
 
   cdp_len = 0;
@@ -292,15 +290,14 @@ static int ds_get (char ***ret, /* {{{ */
 
   assert (ds->ds_num > 0);
 
-  ds_def = malloc (ds->ds_num * sizeof (*ds_def));
+  ds_def = calloc (ds->ds_num, sizeof (*ds_def));
   if (ds_def == NULL)
   {
     char errbuf[1024];
-    ERROR ("rrdtool plugin: malloc failed: %s",
+    ERROR ("rrdtool plugin: calloc failed: %s",
         sstrerror (errno, errbuf, sizeof (errbuf)));
     return (-1);
   }
-  memset (ds_def, 0, ds->ds_num * sizeof (*ds_def));
 
   for (ds_num = 0; ds_num < ds->ds_num; ds_num++)
   {
@@ -421,7 +418,7 @@ static int srrd_create (const char *filename, /* {{{ */
   char last_up_str[16];
 
   new_argc = 6 + argc;
-  new_argv = (char **) malloc ((new_argc + 1) * sizeof (char *));
+  new_argv = malloc ((new_argc + 1) * sizeof (*new_argv));
   if (new_argv == NULL)
   {
     ERROR ("rrdtool plugin: malloc failed.");
@@ -689,7 +686,7 @@ int cu_rrd_create_file (const char *filename, /* {{{ */
 
   argc = ds_num + rra_num;
 
-  if ((argv = (char **) malloc (sizeof (char *) * (argc + 1))) == NULL)
+  if ((argv = malloc (sizeof (*argv) * (argc + 1))) == NULL)
   {
     char errbuf[1024];
     ERROR ("cu_rrd_create_file failed: %s",
index f85910e..a023784 100644 (file)
@@ -157,7 +157,7 @@ static int lu_copy_ident_to_match_part (part_match_t *match_part, /* {{{ */
   assert (sizeof (match_part->str) > len);
   /* strip trailing slash */
   match_part->str[len - 2] = 0;
-  
+
   status = regcomp (&match_part->regex, match_part->str,
       /* flags = */ REG_EXTENDED);
   if (status != 0)
@@ -169,7 +169,7 @@ static int lu_copy_ident_to_match_part (part_match_t *match_part, /* {{{ */
     return (EINVAL);
   }
   match_part->is_regex = 1;
-  
+
   return (0);
 } /* }}} int lu_copy_ident_to_match_part */
 
@@ -204,13 +204,12 @@ static void *lu_create_user_obj (lookup_t *obj, /* {{{ */
 {
   user_obj_t *user_obj;
 
-  user_obj = malloc (sizeof (*user_obj));
+  user_obj = calloc (1, sizeof (*user_obj));
   if (user_obj == NULL)
   {
-    ERROR ("utils_vl_lookup: malloc failed.");
+    ERROR ("utils_vl_lookup: calloc failed.");
     return (NULL);
   }
-  memset (user_obj, 0, sizeof (*user_obj));
   user_obj->next = NULL;
 
   user_obj->user_obj = obj->cb_user_class (ds, vl, user_class->user_class);
@@ -337,7 +336,7 @@ static int lu_handle_user_class_list (lookup_t *obj, /* {{{ */
 {
   user_class_list_t *ptr;
   int retval = 0;
-  
+
   for (ptr = user_class_list; ptr != NULL; ptr = ptr->next)
   {
     int status;
@@ -373,16 +372,15 @@ static by_type_entry_t *lu_search_by_type (lookup_t *obj, /* {{{ */
     return (NULL);
   }
 
-  by_type = malloc (sizeof (*by_type));
+  by_type = calloc (1, sizeof (*by_type));
   if (by_type == NULL)
   {
-    ERROR ("utils_vl_lookup: malloc failed.");
+    ERROR ("utils_vl_lookup: calloc failed.");
     sfree (type_copy);
     return (NULL);
   }
-  memset (by_type, 0, sizeof (*by_type));
   by_type->wildcard_plugin_list = NULL;
-  
+
   by_type->by_plugin_tree = c_avl_create ((void *) strcmp);
   if (by_type->by_plugin_tree == NULL)
   {
@@ -403,7 +401,7 @@ static by_type_entry_t *lu_search_by_type (lookup_t *obj, /* {{{ */
     sfree (type_copy);
     return (NULL);
   }
-  
+
   return (by_type);
 } /* }}} by_type_entry_t *lu_search_by_type */
 
@@ -509,7 +507,7 @@ static void lu_destroy_user_class_list (lookup_t *obj, /* {{{ */
 static void lu_destroy_by_type (lookup_t *obj, /* {{{ */
     by_type_entry_t *by_type)
 {
-  
+
   while (42)
   {
     char *plugin = NULL;
@@ -544,13 +542,12 @@ lookup_t *lookup_create (lookup_class_callback_t cb_user_class, /* {{{ */
     lookup_free_class_callback_t cb_free_class,
     lookup_free_obj_callback_t cb_free_obj)
 {
-  lookup_t *obj = malloc (sizeof (*obj));
+  lookup_t *obj = calloc (1, sizeof (*obj));
   if (obj == NULL)
   {
-    ERROR ("utils_vl_lookup: malloc failed.");
+    ERROR ("utils_vl_lookup: calloc failed.");
     return (NULL);
   }
-  memset (obj, 0, sizeof (*obj));
 
   obj->by_type_tree = c_avl_create ((void *) strcmp);
   if (obj->by_type_tree == NULL)
@@ -605,13 +602,12 @@ int lookup_add (lookup_t *obj, /* {{{ */
   if (by_type == NULL)
     return (-1);
 
-  user_class_obj = malloc (sizeof (*user_class_obj));
+  user_class_obj = calloc (1, sizeof (*user_class_obj));
   if (user_class_obj == NULL)
   {
-    ERROR ("utils_vl_lookup: malloc failed.");
+    ERROR ("utils_vl_lookup: calloc failed.");
     return (ENOMEM);
   }
-  memset (user_class_obj, 0, sizeof (*user_class_obj));
   pthread_mutex_init (&user_class_obj->entry.lock, /* attr = */ NULL);
   user_class_obj->entry.user_class = user_class;
   lu_copy_ident_to_match (&user_class_obj->entry.match, ident, group_by);
@@ -655,6 +651,6 @@ int lookup_search (lookup_t *obj, /* {{{ */
       return (status);
     retval += status;
   }
-    
+
   return (retval);
 } /* }}} lookup_search */
index 6d23c8c..2d541ee 100644 (file)
@@ -68,7 +68,7 @@ static void *lookup_class_callback (data_set_t const *ds,
   assert (expect_new_obj);
 
   memcpy (&last_class_ident, class, sizeof (last_class_ident));
-  
+
   obj = malloc (sizeof (*obj));
   strncpy (obj->host, vl->host, sizeof (obj->host));
   strncpy (obj->plugin, vl->plugin, sizeof (obj->plugin));
index 2df6063..5088217 100644 (file)
@@ -100,7 +100,7 @@ uuid_get_from_dmidecode(void)
     if (!dmidecode) {
         return NULL;
     }
-    
+
     uuid = uuid_parse_dmidecode(dmidecode);
 
     pclose(dmidecode);
index aee7247..d7da95a 100644 (file)
@@ -943,10 +943,9 @@ static int varnish_init (void) /* {{{ */
        if (have_instance)
                return (0);
 
-       conf = malloc (sizeof (*conf));
+       conf = calloc (1, sizeof (*conf));
        if (conf == NULL)
                return (ENOMEM);
-       memset (conf, 0, sizeof (*conf));
 
        /* Default settings: */
        conf->instance = NULL;
@@ -972,10 +971,9 @@ static int varnish_config_instance (const oconfig_item_t *ci) /* {{{ */
        char callback_name[DATA_MAX_NAME_LEN];
        int i;
 
-       conf = malloc (sizeof (*conf));
+       conf = calloc (1, sizeof (*conf));
        if (conf == NULL)
                return (ENOMEM);
-       memset (conf, 0, sizeof (*conf));
        conf->instance = NULL;
 
        varnish_config_apply_default (conf);
index 79d4682..bbf5afc 100644 (file)
@@ -686,7 +686,7 @@ refresh_lists (void)
         int *domids;
 
         /* Get list of domains. */
-        domids = malloc (sizeof (int) * n);
+        domids = malloc (sizeof (*domids) * n);
         if (domids == 0) {
             ERROR (PLUGIN_NAME " plugin: malloc failed.");
             return -1;
index 7bb0433..f501706 100644 (file)
@@ -147,7 +147,7 @@ static int vmem_read (void)
     if (fields[1] == endptr)
       continue;
 
-    /* 
+    /*
      * Number of pages
      *
      * The total number of {inst} pages, e. g dirty pages.
@@ -167,7 +167,7 @@ static int vmem_read (void)
       }
     }
 
-    /* 
+    /*
      * Page in and page outs. For memory and swap.
      */
     else if (strcmp ("pgpgin", key) == 0)
index 6c09f43..1d957eb 100644 (file)
@@ -146,7 +146,7 @@ static int vserver_read (void)
        if (proc == NULL)
        {
                char errbuf[1024];
-               ERROR ("vserver plugin: fopen (%s): %s", PROCDIR, 
+               ERROR ("vserver plugin: fopen (%s): %s", PROCDIR,
                                sstrerror (errno, errbuf, sizeof (errbuf)));
                return (-1);
        }
@@ -185,7 +185,7 @@ static int vserver_read (void)
                len = ssnprintf (file, sizeof (file), PROCDIR "/%s", dent->d_name);
                if ((len < 0) || (len >= BUFSIZE))
                        continue;
-               
+
                status = stat (file, &statbuf);
                if (status != 0)
                {
@@ -194,7 +194,7 @@ static int vserver_read (void)
                                        file, sstrerror (errno, errbuf, sizeof (errbuf)));
                        continue;
                }
-               
+
                if (!S_ISDIR (statbuf.st_mode))
                        continue;
 
index f2a3cf5..8445af2 100644 (file)
@@ -41,7 +41,7 @@ static double wireless_dbm_to_watt (double dbm)
 
        /*
         * dbm = 10 * log_{10} (1000 * power / W)
-        * power = 10^(dbm/10) * W/1000 
+        * power = 10^(dbm/10) * W/1000
         */
 
        watt = pow (10.0, (dbm / 10.0)) / 1000.0;
@@ -88,7 +88,7 @@ static int wireless_read (void)
        double  quality;
        double  power;
        double  noise;
-       
+
        char *fields[8];
        int   numfields;
 
index 6baace1..0fa8bc3 100644 (file)
@@ -486,13 +486,12 @@ static int wg_config_node (oconfig_item_t *ci)
     int i;
     int status = 0;
 
-    cb = malloc (sizeof (*cb));
+    cb = calloc (1, sizeof (*cb));
     if (cb == NULL)
     {
-        ERROR ("write_graphite plugin: malloc failed.");
+        ERROR ("write_graphite plugin: calloc failed.");
         return (-1);
     }
-    memset (cb, 0, sizeof (*cb));
     cb->sock_fd = -1;
     cb->name = NULL;
     cb->node = strdup (WG_DEFAULT_NODE);
index 361c39e..c817749 100644 (file)
@@ -69,6 +69,7 @@ struct wh_callback_s
         int format;
 
         CURL *curl;
+        struct curl_slist *headers;
         char curl_errbuf[CURL_ERROR_SIZE];
 
         char  *send_buffer;
@@ -129,8 +130,6 @@ static int wh_send_buffer (wh_callback_t *cb) /* {{{ */
 
 static int wh_callback_init (wh_callback_t *cb) /* {{{ */
 {
-        struct curl_slist *headers;
-
         if (cb->curl != NULL)
                 return (0);
 
@@ -157,14 +156,14 @@ static int wh_callback_init (wh_callback_t *cb) /* {{{ */
         curl_easy_setopt (cb->curl, CURLOPT_NOSIGNAL, 1L);
         curl_easy_setopt (cb->curl, CURLOPT_USERAGENT, COLLECTD_USERAGENT);
 
-        headers = NULL;
-        headers = curl_slist_append (headers, "Accept:  */*");
+        cb->headers = NULL;
+        cb->headers = curl_slist_append (cb->headers, "Accept:  */*");
         if (cb->format == WH_FORMAT_JSON)
-                headers = curl_slist_append (headers, "Content-Type: application/json");
+                cb->headers = curl_slist_append (cb->headers, "Content-Type: application/json");
         else
-                headers = curl_slist_append (headers, "Content-Type: text/plain");
-        headers = curl_slist_append (headers, "Expect:");
-        curl_easy_setopt (cb->curl, CURLOPT_HTTPHEADER, headers);
+                cb->headers = curl_slist_append (cb->headers, "Content-Type: text/plain");
+        cb->headers = curl_slist_append (cb->headers, "Expect:");
+        curl_easy_setopt (cb->curl, CURLOPT_HTTPHEADER, cb->headers);
 
         curl_easy_setopt (cb->curl, CURLOPT_ERRORBUFFER, cb->curl_errbuf);
         curl_easy_setopt (cb->curl, CURLOPT_URL, cb->location);
@@ -184,7 +183,7 @@ static int wh_callback_init (wh_callback_t *cb) /* {{{ */
                 if (cb->pass != NULL)
                         credentials_size += strlen (cb->pass);
 
-                cb->credentials = (char *) malloc (credentials_size);
+                cb->credentials = malloc (credentials_size);
                 if (cb->credentials == NULL)
                 {
                         ERROR ("curl plugin: malloc failed.");
@@ -331,6 +330,13 @@ static void wh_callback_free (void *data) /* {{{ */
                 curl_easy_cleanup (cb->curl);
                 cb->curl = NULL;
         }
+
+        if (cb->headers != NULL)
+        {
+                curl_slist_free_all (cb->headers);
+                cb->headers = NULL;
+        }
+
         sfree (cb->name);
         sfree (cb->location);
         sfree (cb->user);
@@ -543,13 +549,12 @@ static int wh_config_node (oconfig_item_t *ci) /* {{{ */
         int status = 0;
         int i;
 
-        cb = malloc (sizeof (*cb));
+        cb = calloc (1, sizeof (*cb));
         if (cb == NULL)
         {
-                ERROR ("write_http plugin: malloc failed.");
+                ERROR ("write_http plugin: calloc failed.");
                 return (-1);
         }
-        memset (cb, 0, sizeof (*cb));
         cb->verify_peer = 1;
         cb->verify_host = 1;
         cb->format = WH_FORMAT_COMMAND;
@@ -557,6 +562,8 @@ static int wh_config_node (oconfig_item_t *ci) /* {{{ */
         cb->low_speed_limit = 0;
         cb->timeout = 0;
         cb->log_http_error = 0;
+        cb->headers = NULL;
+
 
         pthread_mutex_init (&cb->send_lock, /* attr = */ NULL);
 
index 24151ce..9a6fdf2 100644 (file)
@@ -274,10 +274,9 @@ static int wm_config_node (oconfig_item_t *ci) /* {{{ */
   int status;
   int i;
 
-  node = malloc (sizeof (*node));
+  node = calloc (1, sizeof (*node));
   if (node == NULL)
     return (ENOMEM);
-  memset (node, 0, sizeof (*node));
   mongo_init (node->conn);
   node->host = NULL;
   node->store_rates = 1;
index 4bfcc73..a79eb36 100644 (file)
@@ -171,10 +171,9 @@ static int wr_config_node (oconfig_item_t *ci) /* {{{ */
   int status;
   int i;
 
-  node = malloc (sizeof (*node));
+  node = calloc (1, sizeof (*node));
   if (node == NULL)
     return (ENOMEM);
-  memset (node, 0, sizeof (*node));
   node->host = NULL;
   node->port = 0;
   node->timeout.tv_sec = 0;
index 6a47ba3..8191ae2 100644 (file)
@@ -205,12 +205,11 @@ static int riemann_send_msg (struct riemann_host *host, const Msg *msg) /* {{{ *
        if (host->use_tcp)
                buffer_len += 4;
 
-       buffer = malloc (buffer_len);
+       buffer = calloc (1, buffer_len);
        if (buffer == NULL) {
-               ERROR ("write_riemann plugin: malloc failed.");
+               ERROR ("write_riemann plugin: calloc failed.");
                return ENOMEM;
        }
-       memset (buffer, 0, buffer_len);
 
        if (host->use_tcp)
        {
@@ -365,13 +364,12 @@ static Msg *riemann_notification_to_protobuf(struct riemann_host *host, /* {{{ *
        notification_meta_t *meta;
        size_t i;
 
-       msg = malloc (sizeof (*msg));
+       msg = calloc (1, sizeof (*msg));
        if (msg == NULL)
        {
-               ERROR ("write_riemann plugin: malloc failed.");
+               ERROR ("write_riemann plugin: calloc failed.");
                return (NULL);
        }
-       memset (msg, 0, sizeof (*msg));
        msg__init (msg);
 
        msg->events = malloc (sizeof (*msg->events));
@@ -382,15 +380,14 @@ static Msg *riemann_notification_to_protobuf(struct riemann_host *host, /* {{{ *
                return (NULL);
        }
 
-       event = malloc (sizeof (*event));
+       event = calloc (1, sizeof (*event));
        if (event == NULL)
        {
-               ERROR ("write_riemann plugin: malloc failed.");
+               ERROR ("write_riemann plugin: calloc failed.");
                sfree (msg->events);
                sfree (msg);
                return (NULL);
        }
-       memset (event, 0, sizeof (*event));
        event__init (event);
 
        msg->events[0] = event;
@@ -474,13 +471,12 @@ static Event *riemann_value_to_protobuf(struct riemann_host const *host, /* {{{
        double ttl;
        size_t i;
 
-       event = malloc (sizeof (*event));
+       event = calloc (1, sizeof (*event));
        if (event == NULL)
        {
-               ERROR ("write_riemann plugin: malloc failed.");
+               ERROR ("write_riemann plugin: calloc failed.");
                return (NULL);
        }
-       memset (event, 0, sizeof (*event));
        event__init (event);
 
        event->host = strdup (vl->host);
@@ -607,13 +603,12 @@ static Msg *riemann_value_list_to_protobuf (struct riemann_host const *host, /*
        gauge_t *rates = NULL;
 
        /* Initialize the Msg structure. */
-       msg = malloc (sizeof (*msg));
+       msg = calloc (1, sizeof (*msg));
        if (msg == NULL)
        {
-               ERROR ("write_riemann plugin: malloc failed.");
+               ERROR ("write_riemann plugin: calloc failed.");
                return (NULL);
        }
-       memset (msg, 0, sizeof (*msg));
        msg__init (msg);
 
        /* Set up events. First, the list of pointers. */
index aae5d8b..5e231a5 100644 (file)
@@ -524,11 +524,10 @@ static char *replace_str(const char *str, const char *old, /* {{{ */
        } else
                retlen = strlen(str);
 
-       ret = malloc(retlen + 1);
+       ret = calloc(1, retlen + 1);
        if (ret == NULL)
                return NULL;
        // added to original: not optimized, but keeps valgrind happy.
-       memset(ret, 0, retlen + 1);
 
        r = ret;
        p = str;
index c562596..0fa6245 100644 (file)
@@ -579,13 +579,12 @@ static int wt_config_tsd(oconfig_item_t *ci)
     char callback_name[DATA_MAX_NAME_LEN];
     int i;
 
-    cb = malloc(sizeof(*cb));
+    cb = calloc(1, sizeof(*cb));
     if (cb == NULL)
     {
-        ERROR("write_tsdb plugin: malloc failed.");
+        ERROR("write_tsdb plugin: calloc failed.");
         return -1;
     }
-    memset(cb, 0, sizeof(*cb));
     cb->sock_fd = -1;
     cb->node = NULL;
     cb->service = NULL;
index 15eae6a..52dc553 100644 (file)
@@ -115,11 +115,11 @@ zone_find_stats(c_avl_tree_t *tree, zoneid_t zoneid)
        zoneid_t     *key = NULL;
 
        if (c_avl_get(tree, (void **)&zoneid, (void **)&ret)) {
-               if (!(ret = malloc(sizeof(zone_stats_t)))) {
+               if (!(ret = malloc(sizeof(*ret)))) {
                        WARNING("zone plugin: no memory");
                        return(NULL);
                }
-               if (!(key = malloc(sizeof(zoneid_t)))) {
+               if (!(key = malloc(sizeof(*key)))) {
                        WARNING("zone plugin: no memory");
                        return(NULL);
                }