network plugin, libcollectdclient: Check return value of gcry_control().
Fixes: #1665
Fixes: #1665
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.
Fixes: CVE-2016-6254
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.
Fixes: CVE-2016-6254
src/*.pod: fix minor warnings spotted by podchecker
collectd.conf.pod: fix minor typos in ntpd plugin section
Bug#1059 : Remove any white spaces in ethstats stat names (affects VMXNet3 interface)
Merged branch 'collectd-4.10' into collectd-5.4.
perl plugin: Be more consistent about capitalization.
perl plugin: Removed commented code
perl plugin: Added call_pv_locked() wrapper to handle thread locking flags.
perl plugin: Switched to PTHREAD_MUTEX_RECURSIVE locking
perl plugin: Fixes for #1706
* Fix coredump due to destroying interpreter on threads running perl.
* Fix deadlock when perl_log() is called from perl_init()
* Fix coredump due to destroying interpreter on threads running perl.
* Fix deadlock when perl_log() is called from perl_init()
perl plugin: lock base thread interpreter in perl_init() too.
Avoid race conditions with c_ithread_create() called from threads of already-initialized plugins.
Fix for https://github.com/collectd/collectd/issues/1706.
Avoid race conditions with c_ithread_create() called from threads of already-initialized plugins.
Fix for https://github.com/collectd/collectd/issues/1706.
processes: re-add <sys/user.h> inclusion
cf #1725
cf #1725
processes: MAXCOMLEN is not exposed on Solaris
MAXCOMLEN in <sys/user.h> is only exposed to kernel
code. I think it's safe to assume that it isn't going
to change, so just hardcode it.
MAXCOMLEN in <sys/user.h> is only exposed to kernel
code. I think it's safe to assume that it isn't going
to change, so just hardcode it.
utils_cache.c: fix FORMAT_VL failed ERROR messages
kill correct pid on fdopen failure
rrdtool plugin: fix thread-safety detection
librrd 1.6.0 is now threadsafe and librrd_th is gone.
Since there doesn't seem to be a way to detect that librrd
is threadsafe, use pkg-config to check for 1.6.0 or newer instead.
The logic is now as follows:
Check for librrd >= 1.6.0 with pkg-config
If not found, look for rrd_update_r in librrd_th.
If not found, look for rrd_update in librrd and assume librrd is not
thread safe.
(cherry picked from commit ef43260cd901847220c2a9de400579ff903ca13e)
Conflicts:
src/Makefile.am
librrd 1.6.0 is now threadsafe and librrd_th is gone.
Since there doesn't seem to be a way to detect that librrd
is threadsafe, use pkg-config to check for 1.6.0 or newer instead.
The logic is now as follows:
Check for librrd >= 1.6.0 with pkg-config
If not found, look for rrd_update_r in librrd_th.
If not found, look for rrd_update in librrd and assume librrd is not
thread safe.
(cherry picked from commit ef43260cd901847220c2a9de400579ff903ca13e)
Conflicts:
src/Makefile.am
rrdtool check: stop linking in libm
(cherry picked from commit 32c0ce39f786c56e9d13f3615253a7ae55b578e6)
(cherry picked from commit 32c0ce39f786c56e9d13f3615253a7ae55b578e6)
rrdtool check: no need to save CPPFLAGS
There's no need to save CPPFLAGS when we're just
checking a library.
(cherry picked from commit f7e09269879b74e61324de9178503221b2df9136)
There's no need to save CPPFLAGS when we're just
checking a library.
(cherry picked from commit f7e09269879b74e61324de9178503221b2df9136)
rrdtool check: no need to save LDFLAGS
There's no need to save LDFLAGS when we're just
checking a header.
(cherry picked from commit 38068ecc7922ace29bb6af3f8ee5568c3fe96c08)
There's no need to save LDFLAGS when we're just
checking a header.
(cherry picked from commit 38068ecc7922ace29bb6af3f8ee5568c3fe96c08)
statsd plugin: Fix deadlock on plugin shutdown (Issue #1703)
Merge pull request #1546 from mfournier/processname_length_1284
processes: warn about process names above OS limit
processes: warn about process names above OS limit
fix potential curl plugin curl_slist_append memory leak
make sure that we dont leak memory if curl_slist_append returns null
make sure that we dont leak memory if curl_slist_append returns null
Fix process plugin memory leak [solaris]
Merge pull request #1627 from rubenk/remove-old-filter-syntax-from-manpage
Remove broken filter syntax from collectd.conf(5)
Remove broken filter syntax from collectd.conf(5)
configure.ac: break long line and sort
This will make future merges easier.
This will make future merges easier.
Fix building with xfsprogs 4.5.0
xfsprogs 4.5.0 started to use off64_t in its headers,
which is hidden behind _GNU_SOURCE
Fixes #1637
xfsprogs 4.5.0 started to use off64_t in its headers,
which is hidden behind _GNU_SOURCE
Fixes #1637
Remove broken filter syntax from collectd.conf(5)
fb67910d documented the new syntax.
The old syntax does no longer work, remove it.
fb67910d documented the new syntax.
The old syntax does no longer work, remove it.
Fix indentation in previous commit
Merge pull request #1620 from skinowski/write_http_mem_leak_II
write_http: in cleanup handler free http headers
write_http: in cleanup handler free http headers
write_http: in cleanup handler free http headers
slist of http headers require cleanup to avoid
memory leak. See libcurl example:
https://curl.haxx.se/libcurl/c/httpcustomheader.html
slist of http headers require cleanup to avoid
memory leak. See libcurl example:
https://curl.haxx.se/libcurl/c/httpcustomheader.html
Fix build on Solaris 10 i386 part 2
utils_latency.c needs the same fix as applied in a41f312
(cherry picked from commit e7f7ecc1cac73841cdebd7e0462af4989532a107)
utils_latency.c needs the same fix as applied in a41f312
(cherry picked from commit e7f7ecc1cac73841cdebd7e0462af4989532a107)
Fix build on Solaris 10 i386
AC_SYS_LARGEFILE defines _FILE_OFFSET_BITS in src/config.h,
so we need this header first before including system headers.
Thanks to @dago for the report.
Fixes:
CC collectd-utils_random.o
In file included from collectd.h:31:0,
from utils_random.c:29:
../../src/config.h:1646:0: error: "_FILE_OFFSET_BITS" redefined
[-Werror]
#define _FILE_OFFSET_BITS 64
^
In file included from
/opt/csw/lib/gcc/i386-pc-solaris2.10/5.2.0/include-fixed/pthread.h:20:0,
from utils_random.c:27:
/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
(cherry picked from commit a41f312a8d48a989dfba00a8b43532c60f67caba)
AC_SYS_LARGEFILE defines _FILE_OFFSET_BITS in src/config.h,
so we need this header first before including system headers.
Thanks to @dago for the report.
Fixes:
CC collectd-utils_random.o
In file included from collectd.h:31:0,
from utils_random.c:29:
../../src/config.h:1646:0: error: "_FILE_OFFSET_BITS" redefined
[-Werror]
#define _FILE_OFFSET_BITS 64
^
In file included from
/opt/csw/lib/gcc/i386-pc-solaris2.10/5.2.0/include-fixed/pthread.h:20:0,
from utils_random.c:27:
/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
(cherry picked from commit a41f312a8d48a989dfba00a8b43532c60f67caba)
RPM specfile: fix xmms plugin build condition
RPM specfile: update changelog
RPM specfile: enable xmms plugin on EL7
RPM specfile: re-enable memcachec plugin on EL7
cf https://bugzilla.redhat.com/show_bug.cgi?id=1116949
cf https://bugzilla.redhat.com/show_bug.cgi?id=1116949
RPM specfile: enable modbus plugin on EL7
Merge pull request #1617 from michaelsalmon/putval-time-exec-pod
added definition of N to collectd-exec
added definition of N to collectd-exec
added definition of N to collectd-exec
Merge pull request #1575 from rubenk/dragonflybsd-utils-mount
Fix build on DragonFlyBSD
Fix build on DragonFlyBSD
Merge pull request #1580 from rubenk/freebsd-zfs-arc
zfs_arc: 'stolen' was removed after FreeBSD 10.2
zfs_arc: 'stolen' was removed after FreeBSD 10.2
Merge pull request #1596 from rubenk/fix-a-few-more-prototypes
Fix a few more prototypes
Fix a few more prototypes
Fix a few more prototypes
Found with -Wstrict-prototypes and -Wold-style-definition
Found with -Wstrict-prototypes and -Wold-style-definition
Merge pull request #1584 from rubenk/fix-wrong-logical-op
utils_avltree.c: fix compiler warning
utils_avltree.c: fix compiler warning
Merge branch 'Wshadow' into collectd-5.4
Define _DEFAULT_SOURCE in addition to _BSD_SOURCE
This enables forward compatibility with the ongoing
deprecation of _BSD_SOURCE.
(cherry picked from commit 3bc1a46bebfa53ec0f0e12d6406ca126a3ad6bf3)
This enables forward compatibility with the ongoing
deprecation of _BSD_SOURCE.
(cherry picked from commit 3bc1a46bebfa53ec0f0e12d6406ca126a3ad6bf3)
Fix a few issues found by -Wshadow
utils_avltree.c: fix compiler warning
make[3]: Entering directory '/home/ruben/src/collectd/src/daemon'
CC utils_avltree.lo
utils_avltree.c: In function ‘rebalance’:
utils_avltree.c:248:20: warning: logical ‘or’ of collectively exhaustive
tests is always true [-Wlogical-op]
assert ((b_bottom >= -1) || (b_bottom <= 1));
^~
utils_avltree.c:258:20: warning: logical ‘or’ of collectively exhaustive
tests is always true [-Wlogical-op]
assert ((b_bottom >= -1) || (b_bottom <= 1));
^~
make[3]: Entering directory '/home/ruben/src/collectd/src/daemon'
CC utils_avltree.lo
utils_avltree.c: In function ‘rebalance’:
utils_avltree.c:248:20: warning: logical ‘or’ of collectively exhaustive
tests is always true [-Wlogical-op]
assert ((b_bottom >= -1) || (b_bottom <= 1));
^~
utils_avltree.c:258:20: warning: logical ‘or’ of collectively exhaustive
tests is always true [-Wlogical-op]
assert ((b_bottom >= -1) || (b_bottom <= 1));
^~
Merge pull request #1582 from rubenk/missing-prototypes
Missing prototypes
Missing prototypes
xmms: mark cxmms_read as static
sensors: mark sensors_free_features as static
processes: mark ps_read_process as static
utils_db_query.c: make udb_query_free_one static
battery: mark dict_get_double as static
types_list.c: add header for prototypes
utils_subst.c: add header for prototypes
utils_random.c: add header for prototypes
utils_cmd_getval.c: add header for prototypes
utils_cmd_flush.c: add header for prototypes
threshold.c: mark ut_config as static
latency_counter_create: fix signature
utils_latency.c: mark change_bin_width as static
utils_cmd_putval.c: include header for prototypes
Include header for prototype of handle_putnotif
Add prototype for module_register
liboconfig: mark oconfig_free_all as static
zfs_arc: 'stolen' was removed after FreeBSD 10.2
Patch taken from FreeBSD port
Patch taken from FreeBSD port
Fix build on DragonFlyBSD
DragonFlyBSD has both vfsstat and fsstat apis.
It lacks ST_NOWAIT however.
The easiest fix is to swap the checks and use getfsstat first.
DragonFlyBSD has both vfsstat and fsstat apis.
It lacks ST_NOWAIT however.
The easiest fix is to swap the checks and use getfsstat first.
configure.ac: fix path when testing for liboconfig/parser.c presence
processes: use long for pids on linux and solaris
Up to now, we had a mix of `int`, `long` and `pid_t` to represent the
variable part of `/proc/<PID>/status` and friends. This patch
standardizes on `long` on the Linux and Solaris platforms.
The max size of `int` is smaller than the maximum number of processes
current kernels support. `pid_t` is used to ensure portability of
functions such as `getpid()`, which aren't used in this plugin, and
apparently resolves to an `int` on Solaris.
This is a follow up to bb978c1, which triggered a format string issue on
solaris 64 bit.
Up to now, we had a mix of `int`, `long` and `pid_t` to represent the
variable part of `/proc/<PID>/status` and friends. This patch
standardizes on `long` on the Linux and Solaris platforms.
The max size of `int` is smaller than the maximum number of processes
current kernels support. `pid_t` is used to ensure portability of
functions such as `getpid()`, which aren't used in this plugin, and
apparently resolves to an `int` on Solaris.
This is a follow up to bb978c1, which triggered a format string issue on
solaris 64 bit.
Move unversioned .so to -devel subpackage
Replace traffic with interface in man page
The traffic plugin was renamed a long time ago.
The traffic plugin was renamed a long time ago.
Merge pull request #1570 from rubenk/detect-bison
configure.ac: detect bison
configure.ac: detect bison
Merge pull request #1567 from rubenk/fix-typo-in-config
Fix typo in collectd.conf
Fix typo in collectd.conf
Merge pull request #1506 from mfournier/apache-content-type-1170
apache: warn about possible misconfiguration
apache: warn about possible misconfiguration
Merge pull request #1561 from mfournier/modbus-set-debug
modbus: avoid enabling libmodbus's debug flag by default
modbus: avoid enabling libmodbus's debug flag by default
configure.ac: detect bison
We use some bison-specific extensions so we really need bison, not yacc.
This has bitten a few people before, so make it easier for them.
Bison is only needed when compiling from git, since we ship the generated file
in the tarball. We take this into account by checking for the generated file first.
We use some bison-specific extensions so we really need bison, not yacc.
This has bitten a few people before, so make it easier for them.
Bison is only needed when compiling from git, since we ship the generated file
in the tarball. We take this into account by checking for the generated file first.
Fix typo in collectd.conf
modbus: avoid enabling libmodbus's debug flag by default
Having this enabled makes collectd's stdout and stderr very noisy. From
now on, only activate this flag when collectd is built with
--enable-debug.
Thanks to Eric Sandeen for mentioning this problem on IRC.
Having this enabled makes collectd's stdout and stderr very noisy. From
now on, only activate this flag when collectd is built with
--enable-debug.
Thanks to Eric Sandeen for mentioning this problem on IRC.
processes: warn about long process names on FreeBSD too
processes: also warn about long process names on Solaris
processes: use portable format string
processes: warn about process names above OS limit
Fixes #1284
Fixes #1284
Fix the addres of the Free Software Foundation
Provide a unified signature for ps_get_cmdline.
Prior to this change, ps_get_cmdline had different signatures for
KERNEL_LINUX vs. KERNEL_SOLARIS. This means that callers who want to
call this function would have to have an #if..#else that controlled which
variant of the function to call.
By giving them the same signature, callers don't have to worry about
that.
Prior to this change, ps_get_cmdline had different signatures for
KERNEL_LINUX vs. KERNEL_SOLARIS. This means that callers who want to
call this function would have to have an #if..#else that controlled which
variant of the function to call.
By giving them the same signature, callers don't have to worry about
that.
The field 're' only exists if HAVE_REGEX_H is defined (see definition at
line 194). So, consistent with all other usages, this should be protected
with an #if guard.
line 194). So, consistent with all other usages, this should be protected
with an #if guard.
Revert "openvpn plugin: Fix "Dead assignment" warning."
I cherry-picked this patch, but overlooked the fact it relates to
another change (c339d93f) only found in the collectd-5.5 branch.
Reverting, as it results in a compilation error.
This reverts commit b7f9a3c02d885e0fbe8fb7aac5c9a51b5771a9d3.
I cherry-picked this patch, but overlooked the fact it relates to
another change (c339d93f) only found in the collectd-5.5 branch.
Reverting, as it results in a compilation error.
This reverts commit b7f9a3c02d885e0fbe8fb7aac5c9a51b5771a9d3.
df: remove legacy code skipping "rootfs" monitoring
3512bb1 added code to skip duplicate reporting of `rootfs` mounted on `/`.
f9c1c5b and f0398d0 added generic code to skip any volume mounted twice.
Depending on the order of the entries in `/etc/mtab`, reporting for `/` was
entirely skipped.
This patch basically reverts the first, non-generic patch, as it's
superseded by the 2 others.
Fixes #1402
Signed-off-by: Florian Forster <octo@collectd.org>
3512bb1 added code to skip duplicate reporting of `rootfs` mounted on `/`.
f9c1c5b and f0398d0 added generic code to skip any volume mounted twice.
Depending on the order of the entries in `/etc/mtab`, reporting for `/` was
entirely skipped.
This patch basically reverts the first, non-generic patch, as it's
superseded by the 2 others.
Fixes #1402
Signed-off-by: Florian Forster <octo@collectd.org>
docs: Add info about mode7 requirement for ntpd
Since ntpd-4.2.7p230 "mode 7" requests are ignored by default, and
that's what ntpd plugin uses currently. The ntp daemon must be
explicitly configured to enable mode7 requests.
This patch adds short information about that to collectd.conf manpage.
Related to collectd/collectd#932
Signed-off-by: Jakub Jankowski <shasta@toxcorp.com>
Since ntpd-4.2.7p230 "mode 7" requests are ignored by default, and
that's what ntpd plugin uses currently. The ntp daemon must be
explicitly configured to enable mode7 requests.
This patch adds short information about that to collectd.conf manpage.
Related to collectd/collectd#932
Signed-off-by: Jakub Jankowski <shasta@toxcorp.com>
docs: mention regexps for the interface plugin
It is very useful to collect data (or ignore) from a group of interfaces
that are similarly named - especially if the list is dynamic and it's
not feasible to update configuration each time an interface shows up or
disappears. It's possible to use regexps to specify interfaces to
collect data from (or ignore), but it's not clearly stated anywhere in
the documentation.
This is an attempt to improve documentation in this area.
Signed-off-by: Jakub Jankowski <shasta@toxcorp.com>
It is very useful to collect data (or ignore) from a group of interfaces
that are similarly named - especially if the list is dynamic and it's
not feasible to update configuration each time an interface shows up or
disappears. It's possible to use regexps to specify interfaces to
collect data from (or ignore), but it's not clearly stated anywhere in
the documentation.
This is an attempt to improve documentation in this area.
Signed-off-by: Jakub Jankowski <shasta@toxcorp.com>
exec plugin: Revert file mode to 0644.
This fixes a regression from 94e562250296b1435e3e48cd302055d89c4c702b.
This fixes a regression from 94e562250296b1435e3e48cd302055d89c4c702b.
virt plugin: make indentation explicit
Fixes this warning raised by gcc-6's new "misleading-indentation"
option:
```
virt.c: In function 'lv_init':
virt.c:331:2: error: statement is indented as if it were guarded by... [-Werror=misleading-indentation]
return 0;
^~~~~~
virt.c:328:5: note: ...this 'if' clause, but it is not
if (virInitialize () != 0)
^~
```
Fixes this warning raised by gcc-6's new "misleading-indentation"
option:
```
virt.c: In function 'lv_init':
virt.c:331:2: error: statement is indented as if it were guarded by... [-Werror=misleading-indentation]
return 0;
^~~~~~
virt.c:328:5: note: ...this 'if' clause, but it is not
if (virInitialize () != 0)
^~
```
df: remove legacy references to ReportReserved
The ReportReserved option was removed in fcb3cbf. This patch cleans up a
couple of references which got left behind.
The ReportReserved option was removed in fcb3cbf. This patch cleans up a
couple of references which got left behind.
write_redis: don't return with lock held
src/utils_latency.c: Fix format string error.
src/utils_latency.c: Ensure that LLONG_MAX is defined.
EPEL5 doesn't have it in <limits.h> apparently.
EPEL5 doesn't have it in <limits.h> apparently.
src/utils_latency.c: Store "bin_width" as cdtime_t.
This solves the integer overflow when passing huge latency values to
latency_counter_add(). In addition to fixing the overflow the function
will now ignore values that are larger than LLONG_MAX, i.e. the longest
possible latency is 272 years. As a nice side-effect, the precission of
latency_counter_get_percentile() is improved.
Issue: #1131
This solves the integer overflow when passing huge latency values to
latency_counter_add(). In addition to fixing the overflow the function
will now ignore values that are larger than LLONG_MAX, i.e. the longest
possible latency is 272 years. As a nice side-effect, the precission of
latency_counter_get_percentile() is improved.
Issue: #1131
src/utils_latency.c: Fix change_bin_width().
A missing cast when calculating "width_change_ratio" caused all metrics to
be moved to bucket #0.
A missing cast when calculating "width_change_ratio" caused all metrics to
be moved to bucket #0.