diff options
Diffstat (limited to 'import-layers/meta-openembedded/meta-oe/recipes-extended/collectd')
3 files changed, 125 insertions, 0 deletions
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-collectd-replace-deprecated-readdir_r-with-readdir.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-collectd-replace-deprecated-readdir_r-with-readdir.patch new file mode 100644 index 000000000..f3d53f26e --- /dev/null +++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-collectd-replace-deprecated-readdir_r-with-readdir.patch @@ -0,0 +1,66 @@ +Subject: [PATCH] collectd: replace deprecated readdir_r() with readdir() + +* Replace the usage of readdir_r() with readdir() + to address a compilation error under glibc 2.24 + due to the deprecation of readdir_r + +| ../../collectd-5.5.0/src/vserver.c: In function 'vserver_read': +| ../../collectd-5.5.0/src/vserver.c:167:3: error: 'readdir_r' is deprecated [-Werror=deprecated-declarations] +| status = readdir_r (proc, (struct dirent *) dirent_buffer, &dent); +| ^~~~~~ +| In file included from /buildarea4/myu2/build/prj_test_20160722/bitbake_build/tmp/sysroots/qemux86/usr/include/features.h:368:0, +| from /buildarea4/myu2/build/prj_test_20160722/bitbake_build/tmp/sysroots/qemux86/usr/include/stdio.h:27, +| from ../../collectd-5.5.0/src/daemon/collectd.h:34, +| from ../../collectd-5.5.0/src/vserver.c:29: +| /buildarea4/myu2/build/prj_test_20160722/bitbake_build/tmp/sysroots/qemux86/usr/include/dirent.h:189:12: note: declared here +| extern int __REDIRECT (readdir_r, +| ^ + + [1]https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=7584a3f96de88d5eefe5d6c634515278cbfbf052;hp=8d9c92017d85f23ba6a2b3614b2f2bcf1820d6f0 + +Upstream-Status: Pending + +Signed-off-by: Mingli Yu <mingli.yu@windriver.com> +--- + src/vserver.c | 15 ++++----------- + 1 file changed, 4 insertions(+), 11 deletions(-) + +diff --git a/src/vserver.c b/src/vserver.c +index bd2e867..2e4e715 100644 +--- a/src/vserver.c ++++ b/src/vserver.c +@@ -131,15 +131,8 @@ static derive_t vserver_get_sock_bytes(const char *s) + + static int vserver_read (void) + { +-#if NAME_MAX < 1024 +-# define DIRENT_BUFFER_SIZE (sizeof (struct dirent) + 1024 + 1) +-#else +-# define DIRENT_BUFFER_SIZE (sizeof (struct dirent) + NAME_MAX + 1) +-#endif +- + DIR *proc; +- struct dirent *dent; /* 42 */ +- char dirent_buffer[DIRENT_BUFFER_SIZE]; ++ struct dirent *dent = NULL; /* 42 */ + + errno = 0; + proc = opendir (PROCDIR); +@@ -164,11 +157,11 @@ static int vserver_read (void) + + int status; + +- status = readdir_r (proc, (struct dirent *) dirent_buffer, &dent); +- if (status != 0) ++ dent = readdir (proc); ++ if (dent == NULL && errno != 0) + { + char errbuf[4096]; +- ERROR ("vserver plugin: readdir_r failed: %s", ++ ERROR ("vserver plugin: readdir failed: %s", + sstrerror (errno, errbuf, sizeof (errbuf))); + closedir (proc); + return (-1); +-- +2.8.2 + diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/CVE-2016-6254.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/CVE-2016-6254.patch new file mode 100644 index 000000000..bc85b4c0e --- /dev/null +++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/CVE-2016-6254.patch @@ -0,0 +1,55 @@ +From dd8483a4beb6f61521d8b32c726523bbea21cd92 Mon Sep 17 00:00:00 2001 +From: Florian Forster <octo@collectd.org> +Date: Tue, 19 Jul 2016 10:00:37 +0200 +Subject: [PATCH] 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 + +cherry picked from upstream commit b589096f + +Upstream Status: Backport + +Signed-off-by: Alexandru Moise <alexandru.moise@windriver.com> +--- + src/network.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/network.c b/src/network.c +index 551bd5c..cb979b2 100644 +--- a/src/network.c ++++ b/src/network.c +@@ -1444,6 +1444,7 @@ static int parse_packet (sockent_t *se, /* {{{ */ + printed_ignore_warning = 1; + } + buffer = ((char *) buffer) + pkg_length; ++ buffer_size -= (size_t) pkg_length; + continue; + } + #endif /* HAVE_LIBGCRYPT */ +@@ -1471,6 +1472,7 @@ static int parse_packet (sockent_t *se, /* {{{ */ + printed_ignore_warning = 1; + } + buffer = ((char *) buffer) + pkg_length; ++ buffer_size -= (size_t) pkg_length; + continue; + } + #endif /* HAVE_LIBGCRYPT */ +@@ -1612,6 +1614,7 @@ static int parse_packet (sockent_t *se, /* {{{ */ + DEBUG ("network plugin: parse_packet: Unknown part" + " type: 0x%04hx", pkg_type); + buffer = ((char *) buffer) + pkg_length; ++ buffer_size -= (size_t) pkg_length; + } + } /* while (buffer_size > sizeof (part_header_t)) */ + +-- +2.7.4 + diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.5.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.5.0.bb index 6a3476f54..34edecfba 100644 --- a/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.5.0.bb +++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.5.0.bb @@ -12,6 +12,8 @@ SRC_URI = "http://collectd.org/files/collectd-${PV}.tar.bz2 \ file://collectd.init \ file://collectd.service \ file://0001-conditionally-check-libvirt.patch \ + file://0001-collectd-replace-deprecated-readdir_r-with-readdir.patch \ + file://CVE-2016-6254.patch \ " SRC_URI[md5sum] = "c39305ef5514b44238b0d31f77e29e6a" SRC_URI[sha256sum] = "847684cf5c10de1dc34145078af3fcf6e0d168ba98c14f1343b1062a4b569e88" @@ -76,6 +78,8 @@ do_install_append() { ${D}${systemd_unitdir}/system/collectd.service } +CONFFILES_${PN} = "${sysconfdir}/collectd.conf" + INITSCRIPT_NAME = "collectd" INITSCRIPT_PARAMS = "defaults" |