network plugin: Fix heap overflow in parse_packet().
Emilien Gaspar has identified a heap overflow in parse_packet(), the
function used by the network plugin to parse incoming network packets.
This is a vulnerability in collectd, though the scope is not clear at
this point. At the very least specially crafted network packets can be
used to crash the daemon. We can't rule out a potential remote code
execution though.
CC write_riemann_la-write_riemann.lo
In file included from ./daemon/collectd.h:31:0,
from write_riemann.c:34:
./config.h:1664:0: error: "_FILE_OFFSET_BITS" redefined [-Werror]
#define _FILE_OFFSET_BITS 64
^
In file included from /usr/include/limits.h:17:0,
from
/opt/csw/lib/gcc/i386-pc-solaris2.10/5.2.0/include-fixed/limits.h:168,
from
/opt/csw/lib/gcc/i386-pc-solaris2.10/5.2.0/include-fixed/syslimits.h:7,
from
/opt/csw/lib/gcc/i386-pc-solaris2.10/5.2.0/include-fixed/limits.h:34,
from /opt/csw/include/protobuf-c/protobuf-c.h:200,
from /opt/csw/include/riemann/proto/riemann.pb-c.h:7,
from /opt/csw/include/riemann/attribute.h:21,
from /opt/csw/include/riemann/riemann-client.h:23,
from write_riemann.c:31:
/opt/csw/lib/gcc/i386-pc-solaris2.10/5.2.0/include-fixed/sys/feature_tests.h:196:0:
note: this is the location of the previous definition
#define _FILE_OFFSET_BITS 32
^
cc1: all warnings being treated as errors
Makefile:4645: recipe for target 'write_riemann_la-write_riemann.lo'
failed
gmake[3]: *** [write_riemann_la-write_riemann.lo] Error 1
gmake[3]: Leaving directory
'/home/dam/mgar/pkg/collectd/trunk/work/solaris10-i386/build-isa-pentium_pro/collectd-5.5.1.1126.g37fe166/src'
Makefile:4879: recipe for target 'all-recursive' failed
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory
'/home/dam/mgar/pkg/collectd/trunk/work/solaris10-i386/build-isa-pentium_pro/collectd-5.5.1.1126.g37fe166/src'
Makefile:3209: recipe for target 'all' failed
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory
'/home/dam/mgar/pkg/collectd/trunk/work/solaris10-i386/build-isa-pentium_pro/collectd-5.5.1.1126.g37fe166/src'
Makefile:572: recipe for target 'all-recursive' failed
gmake: *** [all-recursive] Error 1
gmake: Leaving directory
'/home/dam/mgar/pkg/collectd/trunk/work/solaris10-i386/build-isa-pentium_pro/collectd-5.5.1.1126.g37fe166'
/home/dam/mgar/pkg/.buildsys/v2/gar//gar.lib.mk:874: die Regel für Ziel
„build-work/solaris10-i386/build-isa-pentium_pro/collectd-5.5.1.1126.g37fe166/Makefile“
scheiterte
Scott Talbert [Fri, 15 Jul 2016 14:14:28 +0000 (10:14 -0400)]
smart plugin: add option to store data using serial number
Since a device name (e.g., /dev/sda) can change, allow using the serial number
to store SMART data as this will ensure the data for a given drive is always
kept together.
Scott Talbert [Fri, 15 Jul 2016 13:36:30 +0000 (09:36 -0400)]
smart plugin: add IgnoreSleepMode option to ignore sleeping disks
This option enables the smart plugin to use disks that libatasmart mistakenly
reports as asleep. This happens because libatasmart has not been updated to
incorporate support for newer idle states in the ATA spec.
Mark McKinstry [Wed, 29 Jun 2016 14:54:46 +0000 (10:54 -0400)]
rdkafka is called librdkafka
The [spec file for
librdkafka](https://github.com/edenhill/librdkafka/blob/master/packaging/rpm/librdkafka.spec)
calls its package 'librdkafka-devel', not 'rdkafka-devel'. Searching the
web for 'rdkafka-devel RPM' turns up nothing, all the RPMs are named
'librdkafka-devel'.
Vincent Bernat [Wed, 15 Jun 2016 07:53:07 +0000 (09:53 +0200)]
write_kafka: ensure key is properly hashed to select partition
Otherwise, partition is selected solely on the first letter of the
key. If all your hosts are starting with the same letter, everything
ends up in a single partition.
Sebastian Harl [Sat, 4 Jun 2016 16:51:44 +0000 (18:51 +0200)]
utils_curl_stats: Drop the nonnull attribute from curl_stats_from_config.
It's not overly useful after all but generates false compiler warnings /
errors on Xenial using CLANG, since we also check the parameter in the
function (which is what we want in the end and there's no risk in actually
calling it with a NULL value).
Sebastian Harl [Sat, 18 Apr 2015 17:36:08 +0000 (19:36 +0200)]
Add request specific statistics to all CURL-based plugins.
All metrics supported by curl_easy_getinfo can be retrieved and dispatched for
each request done through CURL. All statistics are optional and disabled by
default.
Ruben Kerkhof [Fri, 10 Jun 2016 10:23:09 +0000 (12:23 +0200)]
configure.ac: remove obsolete macro
We don't need it anymore. See
http://gnu-autoconf.7623.n7.nabble.com/Bug-389558-autoconf-AC-PROG-GCC-TRADITIONAL-throws-error-in-comparision-td1885.html
Ruben Kerkhof [Fri, 10 Jun 2016 08:46:28 +0000 (10:46 +0200)]
chrony plugin: use ANSI function definitions
chrony.c:392:1: warning: function declaration isn’t a prototype
[-Wstrict-prototypes]
chrony_set_timeout()
^
chrony.c: In function ‘chrony_set_timeout’:
chrony.c:392:1: warning: old-style function definition
[-Wold-style-definition]
chrony.c: At top level:
Ruben Kerkhof [Thu, 9 Jun 2016 21:09:18 +0000 (23:09 +0200)]
uc_get_iterator: use ansi function declaration
In file included from common.c:37:0:
utils_cache.h:76:1: warning: function declaration isn’t a prototype
[-Wstrict-prototypes]
uc_iter_t *uc_get_iterator ();
^
Sebastian Harl [Sun, 5 Jun 2016 22:03:39 +0000 (00:03 +0200)]
daemon: Let all command line options override global options from the config.
This replaces 09fb81e130ad70bf0547cec3d3c349ce8cb092cf which provided a
specific solution for the `PIDFile' option. The new solution is generic and
more nicely abstracted without the need for global variables across multiple
modules.
Ruben Kerkhof [Sat, 4 Jun 2016 17:28:22 +0000 (19:28 +0200)]
configure.ac: fix autoreconf warnings
configure.ac:804: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call
detected in body
../../lib/autoconf/lang.m4:193: AC_LANG_CONFTEST is expanded from...
configure.ac:804: the top level