Compare commits

...

No commits in common. "c8s" and "c9-beta" have entirely different histories.
c8s ... c9-beta

12 changed files with 126 additions and 406 deletions

4
.gitignore vendored
View File

@ -1,4 +1,2 @@
SOURCES/php4-r1190.tar.gz
SOURCES/rrdtool-1.7.0.tar.gz
/php4-r1190.tar.gz
/rrdtool-1.7.0.tar.gz
SOURCES/rrdtool-1.7.2.tar.gz

2
.rrdtool.metadata Normal file
View File

@ -0,0 +1,2 @@
215b1e335313edb4b7462368d5341502d7824652 SOURCES/php4-r1190.tar.gz
f0e54258b0f871099623e3a866751928abbb47af SOURCES/rrdtool-1.7.2.tar.gz

View File

@ -0,0 +1,12 @@
diff --git a/bindings/Makefile.am b/bindings/Makefile.am
index 3632b3c..cd1df6a 100644
--- a/bindings/Makefile.am
+++ b/bindings/Makefile.am
@@ -69,7 +69,6 @@ python:
&& env \
ABS_TOP_SRCDIR=${abs_top_srcdir} \
ABS_TOP_BUILDDIR=${abs_top_builddir} \
- LD_RUN_PATH=$(libdir) \
$(PYTHON) ${abs_srcdir}/$@/setup.py build_ext $(PYTHON_RPATH) \
&& env \
ABS_TOP_SRCDIR=${abs_top_srcdir} \

View File

@ -1,9 +1,3 @@
%if 0%{?rhel} > 7
%global with_python2 %{?_without_python2: 0} %{?!_without_python2: 0}
%else
%global with_python2 %{?_without_python2: 0} %{?!_without_python2: 1}
%endif
%global with_python3 %{?_without_python3: 0} %{?!_without_python3: 1}
%global with_php %{?_without_php: 0} %{?!_without_php: 0}
%global with_tcl %{?_without_tcl: 0} %{?!_without_tcl: 1}
@ -23,12 +17,11 @@
Summary: Round Robin Database Tool to store and display time-series data
Name: rrdtool
Version: 1.7.0
Release: 17%{?dist}
Version: 1.7.2
Release: 21%{?dist}
License: GPLv2+ with exceptions
Group: Applications/Databases
URL: http://oss.oetiker.ch/rrdtool/
Source0: http://oss.oetiker.ch/%{name}/pub/%{name}-%{version}.tar.gz
URL: https://oss.oetiker.ch/rrdtool/
Source0: https://oss.oetiker.ch/%{name}/pub/%{name}-%{version}.tar.gz
Source1: php4-%{svnrev}.tar.gz
Patch1: rrdtool-1.4.4-php54.patch
# disable logo for php 5.5.
@ -36,21 +29,18 @@ Patch2: rrdtool-1.4.7-php55.patch
Patch3: rrdtool-1.6.0-ruby-2-fix.patch
# enable php bindings on ppc
Patch4: rrdtool-1.4.8-php-ppc-fix.patch
# https://github.com/oetiker/rrdtool-1.x/issues/861
Patch5: rrdtool-1.7.0-fix-configure-parameters.patch
# backported from:
# https://github.com/oetiker/rrdtool-1.x/commit/4218ec7127ba6c7ea1c20d7c8ea6e2b3f83df73a
Patch6: rrdtool-1.7.0-CVE-2026-43958.patch
Patch5: rrdtool-1.7.2-python-rpath-fix.patch
Requires: dejavu-sans-mono-fonts
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
BuildRequires: make
BuildRequires: gcc-c++, openssl-devel, freetype-devel
BuildRequires: libpng-devel, zlib-devel, intltool >= 0.35.0
BuildRequires: cairo-devel >= 1.4.6, pango-devel >= 1.17
BuildRequires: libtool, groff
BuildRequires: gettext, libxml2-devel, systemd
BuildRequires: gettext, libxml2-devel, systemd, sed
%if %{with_dbi}
BuildRequires: libdbi-devel
%endif
@ -68,7 +58,6 @@ put a friendly user interface on it.
%package devel
Summary: RRDtool libraries and header files
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: pkgconfig
@ -79,7 +68,6 @@ server load average). This package allow you to use directly this library.
%package doc
Summary: RRDtool documentation
Group: Documentation
%description doc
RRD is the Acronym for Round Robin Database. RRD is a system to store and
@ -88,7 +76,6 @@ server load average). This package contains documentation on using RRD.
%package perl
Summary: Perl RRDtool bindings
Group: Development/Languages
Requires: %{name} = %{version}-%{release}
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
Obsoletes: perl-%{name} < %{version}-%{release}
@ -97,54 +84,20 @@ Provides: perl-%{name} = %{version}-%{release}
%description perl
The Perl RRDtool bindings
%if %{with_python2}
# Make sure the runtime python is newer than the build one;
# give a default value to handle parsing in cases when python is not present:
%{!?rrd_python_version: %global rrd_python_version %(%{__python2} -c 'import sys; print sys.version.split(" ")[0]' || echo "3.14")}
%package -n python2-rrdtool
%{?python_provide:%python_provide python2-rrdtool}
# Remove before F30
Provides: %{name}-python = %{version}-%{release}
Provides: %{name}-python%{?_isa} = %{version}-%{release}
Obsoletes: %{name}-python < %{version}-%{release}
Summary: Python RRDtool bindings
Group: Development/Languages
BuildRequires: python2-devel, python2-setuptools
Requires: python2 >= %{rrd_python_version}
Requires: %{name} = %{version}-%{release}
Obsoletes: python-%{name} < %{version}-%{release}
Provides: python-%{name} = %{version}-%{release}
%description -n python2-rrdtool
Python RRDtool bindings.
%endif
%if %{with_python3}
# Make sure the runtime python is newer than the build one;
# give a default value to handle parsing in cases when python is not present:
%{!?rrd_python3_version: %global rrd_python3_version %(%{__python3} -c 'import sys; print(sys.version.split(" ")[0])' || echo "3.14")}
%package -n python3-rrdtool
%{?python_provide:%python_provide python3-rrdtool}
Summary: Python RRDtool bindings
Group: Development/Languages
BuildRequires: python3-devel, python3-setuptools
%{?__python3:Requires: %{__python3}}
Requires: %{name} = %{version}-%{release}
%if 0%{?rhel} > 7
Requires: platform-python >= %{rrd_python3_version}
%else
Requires: python3 >= %{rrd_python3_version}
%endif
%description -n python3-rrdtool
Python RRDtool bindings.
%endif
%if %{with_php}
%package php
Summary: PHP RRDtool bindings
Group: Development/Languages
BuildRequires: php-devel >= 4.0
Requires: php >= 4.0
Requires: %{name} = %{version}-%{release}
@ -162,7 +115,6 @@ RRDtool bindings to the PHP HTML-embedded scripting language.
%if %{with_tcl}
%package tcl
Summary: Tcl RRDtool bindings
Group: Development/Languages
BuildRequires: tcl-devel >= 8.0
Requires: tcl >= 8.0
Requires: %{name} = %{version}-%{release}
@ -178,7 +130,6 @@ The %{name}-tcl package includes RRDtool bindings for Tcl.
%package ruby
Summary: Ruby RRDtool bindings
Group: Development/Languages
BuildRequires: ruby, ruby-devel
Requires: %{name} = %{version}-%{release}
@ -193,7 +144,6 @@ The %{name}-ruby package includes RRDtool bindings for Ruby.
%package lua
Summary: Lua RRDtool bindings
Group: Development/Languages
BuildRequires: lua, lua-devel
%if "%{luaver}" != ""
Requires: lua(abi) = %{luaver}
@ -216,8 +166,7 @@ The %{name}-lua package includes RRDtool bindings for Lua.
%patch3 -p1 -b .ruby-2-fix
%endif
%patch4 -p1 -b .php-ppc-fix
%patch5 -p1 -b .fix-configure-parameters
%patch6 -p1 -b .CVE-2026-43958
%patch5 -p1 -b .python-rpath-fix
# Fix to find correct python dir on lib64
perl -pi -e 's|get_python_lib\(0,0,prefix|get_python_lib\(1,0,prefix|g' \
@ -235,7 +184,7 @@ perl -pi.orig -e 's|1.299907080300|1.29990708|' \
#
# fix config files for php4 bindings
# workaround needed due to https://bugzilla.redhat.com/show_bug.cgi?id=211069
cp -p /usr/lib/rpm/config.{guess,sub} php4/
cp -p /usr/lib/rpm/redhat/config.{guess,sub} php4/
%build
./bootstrap
@ -248,7 +197,7 @@ cp -p /usr/lib/rpm/config.{guess,sub} php4/
%else
--disable-tcl \
%endif
%if %{with_python2} || %{with_python3}
%if %{with_python3}
--enable-python \
%else
--disable-python \
@ -284,27 +233,20 @@ perl Makefile.PL INSTALLDIRS=vendor
perl -pi.orig -e 's|/lib/perl|/%{_lib}/perl|g' Makefile
popd
#{__make} %{?_smp_mflags}
make
%{make_build}
# Build the php module, the tmp install is required
%if %{with_php}
%global rrdtmp %{_tmppath}/%{name}-%{version}-tmpinstall
make install DESTDIR="%{rrdtmp}"
%{__make} install DESTDIR="%{rrdtmp}"
pushd php4/
%if %{with_python2}
export PYTHON=%{__python2}
%endif
%if %{with_python3}
export PYTHON=%{__python3}
%endif
%configure \
--with-rrdtool="%{rrdtmp}%{_prefix}" \
--disable-static
#{__make} %{?_smp_mflags}
make PYTHON="$PYTHON"
%{make_build} PYTHON="$PYTHON"
popd
rm -rf %{rrdtmp}
%endif
@ -317,22 +259,12 @@ find examples/ -name "*.pl" \
# Rebuild python
pushd bindings/python
%if %{with_python2}
%py2_build
%endif
%if %{with_python3}
%py3_build
%endif
popd
%install
%if %{with_python2}
export PYTHON=%{__python2}
%endif
%if %{with_python3}
export PYTHON=%{__python3}
%endif
make DESTDIR="$RPM_BUILD_ROOT" PYTHON="$PYTHON" install
%{make_install} PYTHON="$PYTHON"
# Install the php module
%if %{with_php}
@ -371,12 +303,7 @@ find examples/ -type f -exec chmod 0644 {} \;
# Reinstall python
pushd bindings/python
%if %{with_python2}
%py2_install
%endif
%if %{with_python3}
%py3_install
%endif
popd
# Clean up the buildroot
@ -435,19 +362,11 @@ LD_LIBRARY_PATH=%{buildroot}%{_libdir} php -n \
%{perl_vendorarch}/*.pm
%attr(0755,root,root) %{perl_vendorarch}/auto/RRDs/
%if %{with_python2}
%files -n python2-rrdtool
%doc bindings/python/COPYING bindings/python/README.md
%{python2_sitearch}/rrdtool.so
%{python2_sitearch}/rrdtool-*.egg-info
%endif
%if %{with_python3}
%files -n python3-rrdtool
%doc bindings/python/COPYING bindings/python/README.md
%{python3_sitearch}/rrdtool*.so
%{python3_sitearch}/rrdtool-*.egg-info
%endif
%if %{with_php}
%files php
@ -477,21 +396,106 @@ LD_LIBRARY_PATH=%{buildroot}%{_libdir} php -n \
%endif
%changelog
* Wed May 20 2026 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.0-17
- Fixed stack buffer overflow in rrdcached and added more security checks
Resolves: RHEL-173259
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 1.7.2-21
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Thu Dec 6 2018 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.0-16
- Rebuilt to fix broken build
Related: rhbz#1636795
* Tue Jun 22 2021 Mohan Boddu <mboddu@redhat.com> - 1.7.2-20
- Rebuilt for RHEL 9 BETA for openssl 3.0
Related: rhbz#1971065
* Wed Dec 5 2018 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.0-15
* Wed May 26 2021 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.2-19
- Removed rpath from python bindings better way
Related: rhbz#1960385
* Wed May 26 2021 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.2-18
- Removed rpath from python bindings
Resolves: rhbz#1960385
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 1.7.2-17
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.2-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Jan 06 2021 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.7.2-15
- F-34: rebuild against ruby 3.0
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.2-14
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.2-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Thu Jul 23 2020 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.2-12
- Used macros for make
* Tue Jun 30 2020 Miro Hrončok <mhroncok@redhat.com> - 1.7.2-11
- Rebuilt for Lua 5.4
* Thu Jun 25 2020 Jitka Plesnikova <jplesnik@redhat.com> - 1.7.2-10
- Perl 5.32 rebuild
* Mon Jun 8 2020 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.2-9
- Fixed FTBFS
Resolves: rhbz#1845126
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 1.7.2-8
- Rebuilt for Python 3.9
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.2-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Sat Jan 18 2020 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.7.2-6
- F-32: rebuild against ruby27
* Fri Aug 30 2019 Miro Hrončok <mhroncok@redhat.com> - 1.7.2-5
- Subpackage python2-rrdtool has been removed
See https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 1.7.2-4
- Rebuilt for Python 3.8
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sat Jun 01 2019 Jitka Plesnikova <jplesnik@redhat.com> - 1.7.2-2
- Perl 5.30 rebuild
* Mon May 27 2019 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.2-1
- New version
Resolves: rhbz#1714347
- Dropped compile-fix patch (upstreamed)
* Tue Feb 5 2019 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.1-1
- New version
Resolves: rhbz#1672309
- Dropped fix-configure-parameters patch (upstreamed)
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.0-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Mon Jan 21 2019 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.7.0-20
- F-30: rebuild against ruby26
* Wed Dec 5 2018 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.0-19
- Dropped useless Makefile in examples/rrdcached
Resolves: rhbz#1636795
* Tue Sep 25 2018 Tomas Orsava <torsava@redhat.com> - 1.7.0-14
- Require Platform-Python on RHEL
- Resolves: rhbz#1633608
* Thu Sep 27 2018 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.0-18
- Introduced python3 change requested by python team
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.0-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Wed Jul 04 2018 Petr Pisar <ppisar@redhat.com> - 1.7.0-16
- Perl 5.28 rebuild
* Mon Jul 02 2018 Miro Hrončok <mhroncok@redhat.com> - 1.7.0-15
- Rebuilt for Python 3.7
* Fri Jun 29 2018 Jitka Plesnikova <jplesnik@redhat.com> - 1.7.0-14
- Perl 5.28 rebuild
* Tue Jun 19 2018 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.0-13
- Added support for python3

View File

@ -1,6 +0,0 @@
--- !Policy
product_versions:
- rhel-8
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}

View File

@ -1,239 +0,0 @@
diff --git a/src/rrd_daemon.c b/src/rrd_daemon.c
index 23faeba..4e63d80 100644
--- a/src/rrd_daemon.c
+++ b/src/rrd_daemon.c
@@ -521,7 +521,7 @@ static int check_pidfile(void)
{
int pid_fd;
pid_t pid;
- char pid_str[16];
+ char pid_str[16] = {0};
pid_fd = open_pidfile("open", O_RDWR);
if (pid_fd < 0){
@@ -676,11 +676,7 @@ static int add_response_info(listen_socket_t *sock, char *fmt, ...) /* {{{ */
if (sock->batch_start) return 0; /* no extra info returned when in BATCH */
va_start(argp, fmt);
-#ifdef HAVE_VSNPRINTF
len = vsnprintf(buffer, sizeof(buffer), fmt, argp);
-#else
- len = vsprintf(buffer, fmt, argp);
-#endif
va_end(argp);
if (len < 0)
{
@@ -765,14 +761,12 @@ static int send_response (listen_socket_t *sock, response_code rc,
rc = RESP_OK;
} else {
rclen = snprintf(buffer, sizeof buffer, "%d ", lines);
+ if (rclen < 0 || rclen >= (int) sizeof(buffer))
+ return -1;
}
va_start(argp, fmt);
-#ifdef HAVE_VSNPRINTF
len = vsnprintf(buffer+rclen, sizeof(buffer)-rclen, fmt, argp);
-#else
- len = vsprintf(buffer+rclen, fmt, argp);
-#endif
va_end(argp);
if (len < 0)
return -1;
@@ -2285,7 +2279,8 @@ static int handle_request_create (HANDLER_PROTO) /* {{{ */
char *file_copy = NULL, *dir = NULL, *dir2 = NULL;
char *tok;
int ac = 0;
- char *av[128];
+#define MAX_CREATE_AV 128
+ char *av[MAX_CREATE_AV];
char **sources = NULL;
int sources_length = 0;
char *template = NULL;
@@ -2392,8 +2387,26 @@ static int handle_request_create (HANDLER_PROTO) /* {{{ */
no_overwrite = 1;
continue;
}
- if( ! strncmp(tok,"DS:",3) ) { av[ac++]=tok; continue; }
- if( ! strncmp(tok,"RRA:",4) ) { av[ac++]=tok; continue; }
+ if( ! strncmp(tok,"DS:",3) ) {
+ if (ac >= MAX_CREATE_AV) {
+ rc = send_response(sock, RESP_ERR,
+ "Too many DS/RRA definitions (max %d)\n",
+ MAX_CREATE_AV);
+ goto done;
+ }
+ av[ac++]=tok;
+ continue;
+ }
+ if( ! strncmp(tok,"RRA:",4) ) {
+ if (ac >= MAX_CREATE_AV) {
+ rc = send_response(sock, RESP_ERR,
+ "Too many DS/RRA definitions (max %d)\n",
+ MAX_CREATE_AV);
+ goto done;
+ }
+ av[ac++]=tok;
+ continue;
+ }
rc = syntax_error(sock,cmd);
goto done;
}
diff --git a/src/rrd_graph.c b/src/rrd_graph.c
index fc7ee95..54aad94 100644
--- a/src/rrd_graph.c
+++ b/src/rrd_graph.c
@@ -2449,7 +2449,7 @@ int draw_horizontal_grid(
}
}
} else {
- sprintf(graph_label, im->primary_axis_format,
+ snprintf(graph_label, sizeof(graph_label), im->primary_axis_format,
scaledstep * (double) i, sisym);
}
}
@@ -3767,10 +3767,14 @@ static cairo_status_t cairo_output(
{
image_desc_t *im = (image_desc_t*)closure;
- im->rendered_image =
- (unsigned char*)realloc(im->rendered_image, im->rendered_image_size + length);
- if (im->rendered_image == NULL)
- return CAIRO_STATUS_WRITE_ERROR;
+ {
+ unsigned char *tmp =
+ (unsigned char *) realloc(im->rendered_image,
+ im->rendered_image_size + length);
+ if (tmp == NULL)
+ return CAIRO_STATUS_WRITE_ERROR;
+ im->rendered_image = tmp;
+ }
memcpy(im->rendered_image + im->rendered_image_size, data, length);
im->rendered_image_size += length;
return CAIRO_STATUS_SUCCESS;
@@ -4057,6 +4061,15 @@ int graph_paint_timestring(
(double *) malloc(sizeof(double) * im->xsize * 2);
int drawem = 0;
+ if (foreY == NULL || foreX == NULL ||
+ backY == NULL || backX == NULL) {
+ free(foreY);
+ free(foreX);
+ free(backY);
+ free(backX);
+ return -1;
+ }
+
for (ii = 0; ii <= im->xsize; ii++) {
double ybase, ytop;
@@ -5694,6 +5707,12 @@ int vdef_calc(
case VDEF_PERCENT:{
rrd_value_t *array;
int field;
+ if (steps == 0) {
+ dst->vf.val = DNAN;
+ dst->vf.when = 0;
+ dst->vf.never = 1;
+ break;
+ }
if ((array = (rrd_value_t*)malloc(steps * sizeof(double))) == NULL) {
rrd_set_error("malloc VDEV_PERCENT");
return -1;
@@ -5723,6 +5742,12 @@ int vdef_calc(
if (!isnan(data[step * src->ds_cnt])) { nancount++; }
}
/* and allocate it */
+ if (nancount == 0) {
+ dst->vf.val = DNAN;
+ dst->vf.when = 0;
+ dst->vf.never = 1;
+ break;
+ }
if ((array = (rrd_value_t*)malloc(nancount * sizeof(double))) == NULL) {
rrd_set_error("malloc VDEV_PERCENT");
return -1;
diff --git a/src/rrd_graph_helper.c b/src/rrd_graph_helper.c
index 9e5ffdd..c954018 100644
--- a/src/rrd_graph_helper.c
+++ b/src/rrd_graph_helper.c
@@ -866,7 +866,7 @@ static int parse_xport(enum gf_en,parsedargs_t*,image_desc_t *const);
static void legend_shift(char *legend)
{
if (!legend || !legend[0]) { return; }
- memmove(legend+2,legend,strlen(legend));
+ memmove(legend+2,legend,strlen(legend)+1);
legend[0]=' ';
legend[1]=' ';
}
diff --git a/src/rrd_xport.c b/src/rrd_xport.c
index fd7986d..0325dd9 100644
--- a/src/rrd_xport.c
+++ b/src/rrd_xport.c
@@ -321,6 +321,16 @@ static int rrd_xport_fn(
/* printf("step: %lu\n",*step); */
free(step_list);
+ if (*step == 0) {
+ rrd_set_error("xport step is zero");
+ free(ref_list);
+ for (unsigned long k = *col_cnt; k > 0; k--)
+ free(legend_list[k - 1]);
+ *col_cnt = 0;
+ free(legend_list);
+ return (-1);
+ }
+
*start = im->start - im->start % (*step);
if ( im->start > *start ) {
*start = *start + *step;
@@ -337,24 +347,30 @@ static int rrd_xport_fn(
if (((*data) =
(rrd_value_t*)malloc((*col_cnt) * row_cnt * sizeof(rrd_value_t))) == NULL) {
free(ref_list);
+ for (unsigned long k = *col_cnt; k > 0; k--)
+ free(legend_list[k - 1]);
+ *col_cnt = 0;
free(legend_list);
rrd_set_error("malloc xport data area");
return (-1);
}
dstptr = (*data);
+ long unsigned int chosen_idx = 0;
/* fill data structure */
- for (dst_row = 0; (int) dst_row < (int) row_cnt; dst_row++) {
- for (i = 0; i < (int) (*col_cnt); i++) {
+ for (dst_row = 0; dst_row < row_cnt; dst_row++) {
+ for (i = 0; (unsigned long) i < *col_cnt; i++) {
long vidx = im->gdes[ref_list[i]].vidx;
time_t now = *start + dst_row * *step;
- (*dstptr++) = im->gdes[vidx].data[(unsigned long)
- floor((double)
- (now - im->gdes[vidx].start)
- /im->gdes[vidx].step)
- * im->gdes[vidx].ds_cnt +
- im->gdes[vidx].ds];
+ if (im->gdes[vidx].step > 0 &&
+ now >= im->gdes[vidx].start) {
+ chosen_idx = floor((double) (now - im->gdes[vidx].start) / im->gdes[vidx].step) * im->gdes[vidx].ds_cnt + im->gdes[vidx].ds;
+
+ (*dstptr++) = im->gdes[vidx].data[chosen_idx];
+ } else {
+ (*dstptr++) = DNAN;
+ }
}
}
@@ -821,6 +837,10 @@ static void escapeJSON(char* txt,size_t len) {
char *tmp=(char*)malloc(len+2);
size_t l=strlen(txt);
size_t pos=0;
+
+ if (tmp == NULL)
+ return;
+
/* now iterate over the chars */
for(size_t i=0;(i<l)&&(pos<len);i++,pos++) {
switch (txt[i]) {

View File

@ -1,49 +0,0 @@
--- ./configure.ac.orig 2017-05-16 10:32:11.000000000 +0200
+++ ./configure.ac 2018-01-05 14:00:09.261806009 +0100
@@ -512,7 +512,11 @@
have_libdbi=no
-AC_ARG_ENABLE(libdbi,AS_HELP_STRING([--disable-libdbi],[do not build in support for libdbi]),[],[
+AC_ARG_ENABLE(libdbi,AS_HELP_STRING([--disable-libdbi],[do not build in support for libdbi]),
+[],
+[enable_libdbi=yes])
+
+AS_IF([test "x$enable_libdbi" != xno], [
AC_CHECK_HEADER(dbi/dbi.h, [
AC_CHECK_LIB(dbi, dbi_initialize, [
AC_DEFINE(HAVE_LIBDBI,[1],[have got libdbi installed])
@@ -526,7 +530,11 @@
have_librados=no
-AC_ARG_ENABLE(librados,AS_HELP_STRING([--disable-librados],[do not build in support for librados]),[],[
+AC_ARG_ENABLE(librados,AS_HELP_STRING([--disable-librados],[do not build in support for librados]),
+[],
+[enable_librados=yes])
+
+AS_IF([test "x$enable_librados" != xno], [
AC_CHECK_HEADER(rados/librados.h, [
AC_DEFINE(HAVE_LIBRADOS,[1],[have got librados installed])
LIBS="${LIBS} -lrados"
@@ -538,7 +546,11 @@
have_libwrap=no
-AC_ARG_ENABLE(libwrap, AS_HELP_STRING([--disable-libwrap], [do not build in support for libwrap (tcp wrapper)]),[],[
+AC_ARG_ENABLE(libwrap, AS_HELP_STRING([--disable-libwrap], [do not build in support for libwrap (tcp wrapper)]),
+[],
+[enable_libwrap=yes])
+
+AS_IF([test "x$enable_libwrap" != xno], [
AC_CHECK_HEADER(tcpd.h,[
AC_CHECK_FUNCS(hosts_access, [
AC_DEFINE(HAVE_LIBWRAP,[1],[have got libwrap installed])
@@ -554,7 +566,6 @@
])
])
-
AM_CONDITIONAL(BUILD_LIBWRAP,[test $have_libwrap != no])
AM_CONDITIONAL(BUILD_RRDGRAPH,[test $enable_rrd_graph != no])

View File

@ -1,2 +0,0 @@
SHA512 (php4-r1190.tar.gz) = 5fe8f3798abe50553a825ca8358c0d44af389ce5e5ae219c26da70e39f982fce95ad49ef620d03dd4a4a575e7a75d2f569c2013a250f2bcd16c3b2a5322a8eb7
SHA512 (rrdtool-1.7.0.tar.gz) = 36d979561601135d74622eaf183701de15cba5e25118f7a308926a695ba84ecb33c3d16511bf4bc80cff055853e2eb85065bc4ed8aef19fc0277c6430ecd319f