Code

collectd.git
7 years agowrite_mongodb: fix potential NULL dereference
Ruben Kerkhof [Sun, 2 Jul 2017 17:22:20 +0000 (19:22 +0200)]
write_mongodb: fix potential NULL dereference

scan-build: Using '/usr/bin/clang-4.0' for static analysis
make  all-am
make[1]: Entering directory '/home/ruben/src/collectd'
  CC       src/write_mongodb_la-write_mongodb.lo
src/write_mongodb.c:173:41: warning: Null pointer passed as an argument to a 'nonnull' parameter
                 strlen(node->passwd) + strlen(node->host) + 5 +
                                        ^~~~~~~~~~~~~~~~~~
src/write_mongodb.c:199:42: warning: Null pointer passed as an argument to a 'nonnull' parameter
    uri_length = strlen(format_string) + strlen(node->host) + 5 + 1;
                                         ^~~~~~~~~~~~~~~~~~
2 warnings generated.
  CCLD     write_mongodb.la

7 years agowrite_mongodb.c: clang-format
Ruben Kerkhof [Sun, 2 Jul 2017 17:16:55 +0000 (19:16 +0200)]
write_mongodb.c: clang-format

7 years agoOnly build libplugin_mock.la during make check
Ruben Kerkhof [Sun, 2 Jul 2017 13:44:39 +0000 (15:44 +0200)]
Only build libplugin_mock.la during make check

7 years agoMerge pull request #2315 from mcorbin/feat/riemann-microseconds-resolution
Ruben Kerkhof [Sun, 2 Jul 2017 12:38:36 +0000 (14:38 +0200)]
Merge pull request #2315 from mcorbin/feat/riemann-microseconds-resolution

Add micro-seconds resolution in write_riemann

7 years agoMerge pull request #2301 from rpv-tomsk/fix-apcups
Ruben Kerkhof [Sun, 2 Jul 2017 11:34:05 +0000 (13:34 +0200)]
Merge pull request #2301 from rpv-tomsk/fix-apcups

apcups: Fix reconnect implementation

7 years agoipvs plugin: remove custom kernel source support
Ruben Kerkhof [Sat, 1 Jul 2017 13:43:42 +0000 (15:43 +0200)]
ipvs plugin: remove custom kernel source support

Linux has shipped ipvs.h in its uapi for ages now.

7 years agoconfigure.ac: minor cleanup
Ruben Kerkhof [Sat, 1 Jul 2017 13:27:21 +0000 (15:27 +0200)]
configure.ac: minor cleanup

7 years agoconfigure.ac: remove some whitespace
Ruben Kerkhof [Sat, 1 Jul 2017 13:18:08 +0000 (15:18 +0200)]
configure.ac: remove some whitespace

7 years agosnmp_agent plugin: fix a few build warnings
Ruben Kerkhof [Sat, 1 Jul 2017 13:09:40 +0000 (15:09 +0200)]
snmp_agent plugin: fix a few build warnings

```
CC       src/snmp_agent_la-snmp_agent.lo
src/snmp_agent.c:166:25: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
      for (int i = 0; i < dd->oids_len; i++) {
                      ~ ^ ~~~~~~~~~~~~
src/snmp_agent.c:190:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
    for (int i = 0; i < dd->oids_len; i++) {
                    ~ ^ ~~~~~~~~~~~~
src/snmp_agent.c:289:37: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
  for (i = 0; i < key_len && offset < oid->oid_len; i++)
                             ~~~~~~ ^ ~~~~~~~~~~~~
src/snmp_agent.c:355:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
    for (int i = 0; i < dd->oids_len; i++)
                    ~ ^ ~~~~~~~~~~~~
src/snmp_agent.c:420:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
    for (int i = 0; i < (*dd)->oids_len; i++)
                    ~ ^ ~~~~~~~~~~~~~~~
src/snmp_agent.c:429:25: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
      for (int i = 0; i < (*dd)->oids_len; i++)
                      ~ ^ ~~~~~~~~~~~~~~~
src/snmp_agent.c:440:25: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
      for (int i = 0; i < (*dd)->oids_len; i++)
                      ~ ^ ~~~~~~~~~~~~~~~
src/snmp_agent.c:532:20: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
  assert(oid_index < values_num);
         ~~~~~~~~~ ^ ~~~~~~~~~~
/usr/include/assert.h:89:5: note: expanded from macro 'assert'
  ((expr)                                                               \
    ^~~~
src/snmp_agent.c:584:25: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
      for (int i = 0; i < dd->oids_len; i++) {
                      ~ ^ ~~~~~~~~~~~~
src/snmp_agent.c:768:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
    for (int i = 0; i < dd->oids_len; i++) {
                    ~ ^ ~~~~~~~~~~~~
src/snmp_agent.c:806:25: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
      for (int i = 0; i < dd->oids_len; i++) {
                      ~ ^ ~~~~~~~~~~~~
src/snmp_agent.c:821:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
    for (int i = 0; i < dd->oids_len; i++) {
                    ~ ^ ~~~~~~~~~~~~
src/snmp_agent.c:1287:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
    for (int i = 0; i < dd->oids_len; i++) {
                    ~ ^ ~~~~~~~~~~~~
13 warnings generated.
```

7 years agoipvs plugin: minor cleanup
Ruben Kerkhof [Sat, 1 Jul 2017 12:54:41 +0000 (14:54 +0200)]
ipvs plugin: minor cleanup

- Remove some Yoda conditionals
- Give some variables better names
- Use C99 designated initializers in some places.

7 years agoMerge pull request #2327 from rpv-tomsk/snmp-custom-port
Ruben Kerkhof [Sat, 1 Jul 2017 10:57:27 +0000 (12:57 +0200)]
Merge pull request #2327 from rpv-tomsk/snmp-custom-port

snmp plugin: Option `Address` documented in more details.

7 years agoemail plugin: fix Yoda conditionals
Ruben Kerkhof [Fri, 30 Jun 2017 15:44:48 +0000 (17:44 +0200)]
email plugin: fix Yoda conditionals

7 years agoFix mismerge
Ruben Kerkhof [Fri, 30 Jun 2017 14:53:12 +0000 (16:53 +0200)]
Fix mismerge

7 years agoexec plugin: remove some Yoda conditionals
Ruben Kerkhof [Fri, 30 Jun 2017 14:37:25 +0000 (16:37 +0200)]
exec plugin: remove some Yoda conditionals

7 years agoMerge branch 'collectd-5.7'
Ruben Kerkhof [Fri, 30 Jun 2017 14:20:16 +0000 (16:20 +0200)]
Merge branch 'collectd-5.7'

Conflicts:
src/openldap.c

7 years agoMerge branch 'collectd-5.6' into collectd-5.7
Ruben Kerkhof [Fri, 30 Jun 2017 14:17:06 +0000 (16:17 +0200)]
Merge branch 'collectd-5.6' into collectd-5.7

7 years agoemail, exec and unixsock plugins: enlarge buffer for getgrnam_r result
Ruben Kerkhof [Fri, 30 Jun 2017 14:15:25 +0000 (16:15 +0200)]
email, exec and unixsock plugins: enlarge buffer for getgrnam_r result

Thanks to Jeremie Courreges-Anglas and Daniel Jakots.

7 years agoemail, exec and unixsock plugins: fix error handling
Ruben Kerkhof [Fri, 30 Jun 2017 14:12:57 +0000 (16:12 +0200)]
email, exec and unixsock plugins: fix error handling

Diff from Jeremie Courreges-Anglas, via Daniel Jakots

7 years agoMerge pull request #2331 from mfournier/ldap_unbind-segfault
Ruben Kerkhof [Wed, 28 Jun 2017 17:38:12 +0000 (19:38 +0200)]
Merge pull request #2331 from mfournier/ldap_unbind-segfault

openldap: check ld structure before passing it to ldap_unbind()

7 years agoopenldap: check ld structure before passing it to ldap_unbind()
Marc Fournier [Wed, 28 Jun 2017 11:46:59 +0000 (13:46 +0200)]
openldap: check ld structure before passing it to ldap_unbind()

This prevents collectd from segfaulting when the ldap session setup
fails before opening a connection to openldap (syntax error in the URL
option for example).

7 years agosnmp: Option `Address` documented in more details.
Pavel Rochnyack [Sun, 25 Jun 2017 07:40:07 +0000 (14:40 +0700)]
snmp: Option `Address` documented in more details.

As described at http://net-snmp.sourceforge.net/dev/agent/structsnmp__session.html,
it may include transport specifier and/or port number.
Configuration examples are updated too.

Closes: #2302
7 years agoMerge pull request #2320 from maryamtahhan/feat_snmp_compilation_issue
Ruben Kerkhof [Wed, 21 Jun 2017 09:55:35 +0000 (11:55 +0200)]
Merge pull request #2320 from maryamtahhan/feat_snmp_compilation_issue

SNMP Agent: Fix compilation issue of snmp_agent plugin

7 years agoSNMP Agent: Fix compilation issue on Net-SNMP v5.4.3
Mytnyk, VolodymyrX [Tue, 20 Jun 2017 10:14:41 +0000 (11:14 +0100)]
SNMP Agent: Fix compilation issue on Net-SNMP v5.4.3

The compilation of SNMP Agent fails on older version of
Net-SNMP (5.4.3).

Signed-off-by: Mytnyk, VolodymyrX <volodymyrx.mytnyk@intel.com>
7 years agoAdd micro-seconds resolution in write_riemann
mcorbin [Tue, 13 Jun 2017 19:12:07 +0000 (21:12 +0200)]
Add micro-seconds resolution in write_riemann

riemann-c-client 1.10.0 and higher supports micro-seconds time
resolution for Riemann events.

7 years agoBump version to 5.7.2; Update ChangeLog. collectd-5.7.2
Florian Forster [Tue, 6 Jun 2017 18:11:05 +0000 (20:11 +0200)]
Bump version to 5.7.2; Update ChangeLog.

7 years agoMerge branch 'collectd-5.7'
Ruben Kerkhof [Tue, 6 Jun 2017 08:31:07 +0000 (10:31 +0200)]
Merge branch 'collectd-5.7'

Conflicts:
src/intel_rdt.c

7 years agoMerge pull request #2310 from octo/ff/intel_rdt
Ruben Kerkhof [Tue, 6 Jun 2017 08:28:19 +0000 (10:28 +0200)]
Merge pull request #2310 from octo/ff/intel_rdt

intel_rdt plugin: Remove unnecessary goto.

7 years agointel_rdt plugin: Remove unnecessary goto.
Florian Forster [Mon, 5 Jun 2017 05:33:36 +0000 (07:33 +0200)]
intel_rdt plugin: Remove unnecessary goto.

7 years agoMerge branch 'collectd-5.7'
Ruben Kerkhof [Thu, 1 Jun 2017 18:38:17 +0000 (20:38 +0200)]
Merge branch 'collectd-5.7'

7 years agoMerge branch 'collectd-5.6' into collectd-5.7
Ruben Kerkhof [Thu, 1 Jun 2017 18:37:49 +0000 (20:37 +0200)]
Merge branch 'collectd-5.6' into collectd-5.7

7 years agoBind plugin: plug a few leaks
Ruben Kerkhof [Tue, 30 May 2017 15:25:17 +0000 (17:25 +0200)]
Bind plugin: plug a few leaks

Fixes: #2303
7 years agoMerge pull request #2307 from saiarcot895/mongo-mem-leak
Ruben Kerkhof [Thu, 1 Jun 2017 18:35:19 +0000 (20:35 +0200)]
Merge pull request #2307 from saiarcot895/mongo-mem-leak

Use bson_destroy instead of bson_free, and fix memleak issue.

7 years agoUse bson_destroy instead of bson_free, and fix memleak issue.
Saikrishna Arcot [Wed, 31 May 2017 14:49:25 +0000 (07:49 -0700)]
Use bson_destroy instead of bson_free, and fix memleak issue.

7 years agoMerge pull request #2304 from archii/fix-ipmi-docs-typo
Ruben Kerkhof [Tue, 30 May 2017 09:33:13 +0000 (11:33 +0200)]
Merge pull request #2304 from archii/fix-ipmi-docs-typo

Fix ipmi docs typo

7 years agoMerge pull request #1 from archii/archii-fix-docs-typo-1
archii [Tue, 30 May 2017 00:56:56 +0000 (10:56 +1000)]
Merge pull request #1 from archii/archii-fix-docs-typo-1

fix typo in collectd.conf.pod

7 years agofix typo in collectd.conf.pod
archii [Tue, 30 May 2017 00:54:47 +0000 (10:54 +1000)]
fix typo in collectd.conf.pod

7 years agopython plugin: stop disabling strict aliasing
Ruben Kerkhof [Sat, 27 May 2017 14:12:41 +0000 (16:12 +0200)]
python plugin: stop disabling strict aliasing

According to https://bugs.python.org/issue1718153, this has been fixed
in python 2.6, the oldest version we support.

7 years agoconfigure.ac: slightly tweak dpdk check
Ruben Kerkhof [Sat, 27 May 2017 13:53:46 +0000 (15:53 +0200)]
configure.ac: slightly tweak dpdk check

7 years agoconfigure.ac: keep libs sorted
Ruben Kerkhof [Sat, 27 May 2017 13:46:24 +0000 (15:46 +0200)]
configure.ac: keep libs sorted

7 years agoconfigure.ac: detect compiler vendor
Ruben Kerkhof [Sat, 27 May 2017 13:27:54 +0000 (15:27 +0200)]
configure.ac: detect compiler vendor

I'll use this in followup patches to detect if the compiler supports
various warning flags. For example, a long standing issue is that older
version of the Sun studio compiler doesn't support -Werror.

7 years agoconfigure.ac: no need for body for preproc test
Ruben Kerkhof [Sat, 27 May 2017 13:06:47 +0000 (15:06 +0200)]
configure.ac: no need for body for preproc test

7 years agoconfigure.ac: use preprocessor to detect libpqos version
Ruben Kerkhof [Sat, 27 May 2017 13:05:45 +0000 (15:05 +0200)]
configure.ac: use preprocessor to detect libpqos version

No need to run the program.

7 years agoconfigure.ac: use preprocessor to detect dpdk version
Ruben Kerkhof [Sat, 27 May 2017 12:59:57 +0000 (14:59 +0200)]
configure.ac: use preprocessor to detect dpdk version

The test doesn't run any code, so no need to compile it.

7 years agoconfigure.ac: replace AS_IF with normal test
Ruben Kerkhof [Sat, 27 May 2017 12:54:22 +0000 (14:54 +0200)]
configure.ac: replace AS_IF with normal test

AS_IF is slightly more portable, but slightly less readable.

7 years agoconfigure.ac: replace last few tabs with spaces
Ruben Kerkhof [Sat, 27 May 2017 12:52:34 +0000 (14:52 +0200)]
configure.ac: replace last few tabs with spaces

7 years agoconfigure.ac: fix libpqos detection style
Ruben Kerkhof [Sat, 27 May 2017 12:51:11 +0000 (14:51 +0200)]
configure.ac: fix libpqos detection style

7 years agosnmp-agent: fix build on RHEL6
Ruben Kerkhof [Sat, 27 May 2017 12:30:33 +0000 (14:30 +0200)]
snmp-agent: fix build on RHEL6

libnetsnmpagent.so from net-snmp 5.5 needs some symbols from libnetsnmphelpers.so,
but does not link against it on RHEL5.

Work around this by looking for one of those symbols in the helper lib,
and if found, link against it.

Later versions of net-snmp seem to have moved those symbols to
libnetsnmpagent.so, so it's not an issue there.

7 years agoconfigure.ac: remove unneeded include
Ruben Kerkhof [Sat, 27 May 2017 11:46:07 +0000 (13:46 +0200)]
configure.ac: remove unneeded include

All files in AC_CONFIG_MACRO_DIR are included by default.

7 years agoconfigure.ac: improve libnetsnmpagent detection
Ruben Kerkhof [Sat, 27 May 2017 11:37:06 +0000 (13:37 +0200)]
configure.ac: improve libnetsnmpagent detection

Turn it into a separate check, which also makes it possible to disable
it.

snmp_agent and snmp are separate plugins, and on at least Fedora are
packaged separately.

A beneficial side effect is that this reduces overlinking of snmp.so
with libnetsnmpagent.so

7 years agosnmp-agent: check for the right header
Ruben Kerkhof [Sat, 27 May 2017 10:30:35 +0000 (12:30 +0200)]
snmp-agent: check for the right header

We never include net-snmp/agent/agent_module_config.h

7 years agoconfigure.ac: fix style for snmpagent plugin
Ruben Kerkhof [Sat, 27 May 2017 10:24:40 +0000 (12:24 +0200)]
configure.ac: fix style for snmpagent plugin

7 years agoconfigure.ac: fix overquoting
Ruben Kerkhof [Sat, 27 May 2017 10:07:30 +0000 (12:07 +0200)]
configure.ac: fix overquoting

7 years agoapcups: Fix reconnect implementation
Pavel Rochnyack [Fri, 26 May 2017 06:46:09 +0000 (12:46 +0600)]
apcups: Fix reconnect implementation

Implementation was broken, it doesn't reconnects as planned.

7 years agoformat_graphite: Error if call to uc_get_rate fails to return a value.
Iain Buclaw [Fri, 19 May 2017 10:55:37 +0000 (12:55 +0200)]
format_graphite: Error if call to uc_get_rate fails to return a value.

This prevents a wrong value being sent to graphite for DERIVE types.

See #2209

Signed-off-by: Florian Forster <octo@collectd.org>
7 years agosnmp plugin: Avoid allocation of temporary buffers on the heap.
Florian Forster [Fri, 19 May 2017 13:10:46 +0000 (15:10 +0200)]
snmp plugin: Avoid allocation of temporary buffers on the heap.

7 years agosrc/daemon/utils_cache.c: Add debug message for lookup of missing metrics.
Florian Forster [Fri, 19 May 2017 06:39:45 +0000 (08:39 +0200)]
src/daemon/utils_cache.c: Add debug message for lookup of missing metrics.

Issue: #1234

7 years agosrc/daemon/utils_cache.c: Remove unnecessary cast.
Florian Forster [Fri, 19 May 2017 06:34:37 +0000 (08:34 +0200)]
src/daemon/utils_cache.c: Remove unnecessary cast.

(data_set_t).ds_num has been changed to be a size_t.

7 years agoMerge remote-tracking branch 'github/pr/2285'
Florian Forster [Fri, 19 May 2017 06:04:44 +0000 (08:04 +0200)]
Merge remote-tracking branch 'github/pr/2285'

7 years agoMerge pull request #2290 from BrandonArp/snmp_agent_rpm
Florian Forster [Fri, 19 May 2017 04:52:39 +0000 (06:52 +0200)]
Merge pull request #2290 from BrandonArp/snmp_agent_rpm

allow configuration of snmp_agent in rpm builds

7 years agoallow configuration of snmp_agent in rpm builds
Brandon Arp [Thu, 18 May 2017 21:38:33 +0000 (14:38 -0700)]
allow configuration of snmp_agent in rpm builds

7 years agoMerge pull request #2287 from BrandonArp/fix_am_1_11
Ruben Kerkhof [Thu, 18 May 2017 09:19:09 +0000 (11:19 +0200)]
Merge pull request #2287 from BrandonArp/fix_am_1_11

fix build on automake 1.11

7 years agocurl_json plugin: Work around a limitation in EPEL6's GCC.
Florian Forster [Wed, 17 May 2017 06:17:38 +0000 (08:17 +0200)]
curl_json plugin: Work around a limitation in EPEL6's GCC.

7 years agoMerge remote-tracking branch 'github/pr/2105'
Florian Forster [Thu, 18 May 2017 08:10:06 +0000 (10:10 +0200)]
Merge remote-tracking branch 'github/pr/2105'

7 years agoMerge remote-tracking branch 'github/pr/2190'
Florian Forster [Thu, 18 May 2017 08:07:03 +0000 (10:07 +0200)]
Merge remote-tracking branch 'github/pr/2190'

7 years agochrony plugin: Re-run clang-format.
Florian Forster [Thu, 18 May 2017 08:05:42 +0000 (10:05 +0200)]
chrony plugin: Re-run clang-format.

7 years agomemcached plugin: Expand "del" to "delete" for clarity.
Florian Forster [Thu, 18 May 2017 07:38:54 +0000 (09:38 +0200)]
memcached plugin: Expand "del" to "delete" for clarity.

7 years agomemcached plugin: Add delete_{hits,misses} metrics.
theairkit [Thu, 1 Dec 2016 14:22:45 +0000 (17:22 +0300)]
memcached plugin: Add delete_{hits,misses} metrics.

7 years agosrc/daemon/utils_cache.c: Read time *after* acquiring the lock.
Florian Forster [Thu, 18 May 2017 07:23:32 +0000 (09:23 +0200)]
src/daemon/utils_cache.c: Read time *after* acquiring the lock.

Fixes: #1193
7 years agofix build on automake 1.11
Brandon Arp [Wed, 17 May 2017 01:38:48 +0000 (18:38 -0700)]
fix build on automake 1.11

7 years agosnmp_agent plugin: Don't export the g_agent variable.
Florian Forster [Wed, 17 May 2017 09:31:25 +0000 (11:31 +0200)]
snmp_agent plugin: Don't export the g_agent variable.

7 years agosnmp_agent plugin: Remove parenthesis around return values.
Florian Forster [Wed, 17 May 2017 09:30:18 +0000 (11:30 +0200)]
snmp_agent plugin: Remove parenthesis around return values.

See also: #2277

7 years agosnmp_agent plugin: Format with clang-format.
Florian Forster [Wed, 17 May 2017 09:28:27 +0000 (11:28 +0200)]
snmp_agent plugin: Format with clang-format.

7 years agoMerge remote-tracking branch 'github/pr/2277'
Florian Forster [Wed, 17 May 2017 06:40:59 +0000 (08:40 +0200)]
Merge remote-tracking branch 'github/pr/2277'

7 years agoamqp plugin: Enable the "ExchangeType" for publishers, too.
Florian Forster [Wed, 17 May 2017 06:01:29 +0000 (08:01 +0200)]
amqp plugin: Enable the "ExchangeType" for publishers, too.

Fixes: #2286
7 years agocurl_json plugin: Refactor the way trees/keys are stored.
Florian Forster [Tue, 16 May 2017 20:44:26 +0000 (22:44 +0200)]
curl_json plugin: Refactor the way trees/keys are stored.

Previously, keys had a "magic" as their first member which was used to
differentiate between the two types when they were returned from the
binary search tree.

This patch creates a new struct, cj_tree_entry_t, which includes an enum
identifying which union member is valid.

7 years agocurl_json plugin: Expand unit tests.
Florian Forster [Tue, 16 May 2017 15:01:49 +0000 (17:01 +0200)]
curl_json plugin: Expand unit tests.

This adds various tests involving arrays.

Issue: #2266

7 years agoMerge branch 'collectd-5.7'
Florian Forster [Tue, 16 May 2017 17:36:27 +0000 (19:36 +0200)]
Merge branch 'collectd-5.7'

7 years agoMerge branch 'collectd-5.6' into collectd-5.7
Florian Forster [Tue, 16 May 2017 17:34:25 +0000 (19:34 +0200)]
Merge branch 'collectd-5.6' into collectd-5.7

7 years agocurl_json plugin: Fix array index and key handling.
Florian Forster [Mon, 15 May 2017 12:40:26 +0000 (14:40 +0200)]
curl_json plugin: Fix array index and key handling.

Previously, the "key" was loaded by calling cj_cb_map_key() from
cj_cb_inc_array_index(). That means that the key for the previous element
was loaded as the array index was updated for the next element, resulting
in an off-by-one error. Also the key was not unset in time, resulting in
two metrics with the same identifier being created.

This patch fixes this with the following changes:

*   cj_advance_array() (nee cj_cb_inc_array_index()) now loads the key for
    the new index position instead of the previous one.
*   The initial "0" key is loaded from cj_cb_start_array().
*   cj_advance_array() always updates the key. The "update_key" argument
    has been removed.
*   Refactoring: key loading has been moved out of cj_cb_map_key() and
    into its own function, cj_load_key().

Unit tests are in a separate commit for easier cherry-picking.

Fixes: #2266
7 years agoMerge pull request #2283 from octo/ff/valgrind
Florian Forster [Tue, 16 May 2017 12:15:07 +0000 (14:15 +0200)]
Merge pull request #2283 from octo/ff/valgrind

valgrind.FreeBSD.suppress: parse_value(): Always suppress the strlen(…

7 years agovalgrind.FreeBSD.suppress: parse_value(): Always suppress the strlen() false positive.
Florian Forster [Tue, 16 May 2017 09:27:53 +0000 (11:27 +0200)]
valgrind.FreeBSD.suppress: parse_value(): Always suppress the strlen() false positive.

Previously, this was only suppressed when called via parse_values()
(note the plural).

Fixes: #2282
7 years agocurl_json plugin: Implement a unit test.
Florian Forster [Mon, 15 May 2017 12:40:56 +0000 (14:40 +0200)]
curl_json plugin: Implement a unit test.

Issue: #2266

7 years agosrc/testing.h: Fix result of EXPECT_EQ_DOUBLE() when actual is NAN.
Florian Forster [Mon, 15 May 2017 15:25:44 +0000 (17:25 +0200)]
src/testing.h: Fix result of EXPECT_EQ_DOUBLE() when actual is NAN.

7 years agosrc/daemon/plugin_mock.c: Add stubs for additional functions.
Florian Forster [Mon, 15 May 2017 15:25:08 +0000 (17:25 +0200)]
src/daemon/plugin_mock.c: Add stubs for additional functions.

7 years agocurl_json plugin: Split cj_append_key() out of cj_config_add_key().
Florian Forster [Mon, 15 May 2017 12:59:14 +0000 (14:59 +0200)]
curl_json plugin: Split cj_append_key() out of cj_config_add_key().

7 years agocurl_json plugin: Use struct initializer.
Florian Forster [Tue, 16 May 2017 07:04:44 +0000 (09:04 +0200)]
curl_json plugin: Use struct initializer.

7 years agocurl_json plugin: Remove unused field from cj_t.
Florian Forster [Mon, 15 May 2017 12:57:46 +0000 (14:57 +0200)]
curl_json plugin: Remove unused field from cj_t.

7 years agoMerge pull request #2279 from octo/ff/virt
Ruben Kerkhof [Mon, 15 May 2017 08:53:07 +0000 (10:53 +0200)]
Merge pull request #2279 from octo/ff/virt

virt plugin: Replace virTypedParamsFree() with virTypedParamsClear() …

7 years agovirt plugin: Replace virTypedParamsFree() with virTypedParamsClear() and sfree().
Florian Forster [Mon, 15 May 2017 06:51:56 +0000 (08:51 +0200)]
virt plugin: Replace virTypedParamsFree() with virTypedParamsClear() and sfree().

The parameters are allocated with calloc(), freeing them with a library
function is unintuitive at best. Also, the library functions appears to
be missing the appropriate function attribute to tell clang / GCC that
it will free the pointer, resulting in a false-positive scan-build
report.

7 years agocollectd.conf(5): Fix typo ("queries" vs. "queried").
Florian Forster [Mon, 15 May 2017 06:14:03 +0000 (08:14 +0200)]
collectd.conf(5): Fix typo ("queries" vs. "queried").

By avoiding the word: "metrics" is bettern than "statistics".

7 years agoMerge pull request #2278 from octo/ff/perl
Ruben Kerkhof [Sun, 14 May 2017 10:38:58 +0000 (12:38 +0200)]
Merge pull request #2278 from octo/ff/perl

perl plugin: Fix potential double-free.

7 years agoperl plugin: Fix potential double-free.
Florian Forster [Sun, 14 May 2017 06:24:51 +0000 (08:24 +0200)]
perl plugin: Fix potential double-free.

The av2notification_meta() function updated it's parameter by doing

    (*m) = malloc();

Afterwards, if an error occurred, it would call `free(*m);` and (potentially)
return, leaving an invalid pointer stored in `m`. The caller would then try to
free the returned pointer because it was non-NULL.

This patch fixes this by doing several code cleanups:

*   The meta argument is not updated unnecessarily. Instead, a local variable
    is allocated and used within the loop and only on success is the return
    pointer updated.
*   Introduce additional local variables instead of re-using the `tmp` variable
    multiple times.
*   Name the variable pointing to the end of the linked list appropriately
    `tail` and remove one level of indirection. Reading code that is using
    pointers to pointers is unnecessarily hard.

7 years agoRemove parentheses around return arguments
Ruben Kerkhof [Sat, 13 May 2017 12:41:48 +0000 (14:41 +0200)]
Remove parentheses around return arguments

They don't do any harm but they are not really needed either.
Contributors are not used to following this style, and reviewers have to
keep pointing it out in reviews. This takes up valuable time for both
the contributor and the reviewer and distracts from the more important
issues.

I used the following Coccinelle patch:

@@
expression e;
@@
- return (e);
+ return e;

spatch is having trouble with some files so I have cleaned up the rest
with a few regexes.

7 years agoMerge branch 'collectd-5.7'
Florian Forster [Fri, 12 May 2017 13:19:43 +0000 (15:19 +0200)]
Merge branch 'collectd-5.7'

7 years agoMerge pull request #2275 from octo/ff/prometheus
Florian Forster [Fri, 12 May 2017 13:17:13 +0000 (15:17 +0200)]
Merge pull request #2275 from octo/ff/prometheus

write_prometheus plugin: Fix incorrect use of realloc().

7 years agoMerge pull request #2274 from octo/ff/putval
Florian Forster [Fri, 12 May 2017 13:16:50 +0000 (15:16 +0200)]
Merge pull request #2274 from octo/ff/putval

src/utils_cmd_putval.c: Fix multi-value PUTVAL.

7 years agosrc/utils_cmd_putval.c: Fix multi-value PUTVAL.
Florian Forster [Fri, 12 May 2017 10:08:55 +0000 (12:08 +0200)]
src/utils_cmd_putval.c: Fix multi-value PUTVAL.

vl.values was allocated outside of the loop and then copied into each
ret_putval->vl[]. This means that later values overwrote the values
stored in previous ret_putval->vl[].

7 years agowrite_prometheus plugin: Fix incorrect use of realloc().
Florian Forster [Fri, 12 May 2017 11:05:37 +0000 (13:05 +0200)]
write_prometheus plugin: Fix incorrect use of realloc().

Calling realloc(ptr, 0) is undefined. Call free() explicitly.

7 years agoconfigure.ac: Remove empty else-block from AC_CHECK_LIB.
Florian Forster [Fri, 12 May 2017 06:05:47 +0000 (08:05 +0200)]
configure.ac: Remove empty else-block from AC_CHECK_LIB.

Fixes: #2272
7 years agoMerge branch 'collectd-5.7'
Florian Forster [Fri, 12 May 2017 09:18:52 +0000 (11:18 +0200)]
Merge branch 'collectd-5.7'