rpms/rrdtool/devel rrdtool-1.2.15-long_error_string.patch, NONE, 1.1 rrdtool.spec, 1.27, 1.28

Jarod Wilson (jwilson) fedora-extras-commits at redhat.com
Tue Jan 2 17:07:22 UTC 2007


Author: jwilson

Update of /cvs/extras/rpms/rrdtool/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv29115

Modified Files:
	rrdtool.spec 
Added Files:
	rrdtool-1.2.15-long_error_string.patch 
Log Message:
Add patch to fix crash w/long error strings (upstream changesets 929 and 935)

rrdtool-1.2.15-long_error_string.patch:

--- NEW FILE rrdtool-1.2.15-long_error_string.patch ---
Index: rrdtool/src/rrd_not_thread_safe.c
===================================================================
--- rrdtool/src/rrd_not_thread_safe.c (revision 860)
+++ rrdtool/src/rrd_not_thread_safe.c (revision 935)
@@ -15,18 +15,24 @@
 #define ERRBUFLEN 256
 
-static char rrd_error[MAXLEN] = "\0";
-static char rrd_liberror[ERRBUFLEN] = "\0";
+static char rrd_error[MAXLEN+10];
+static char rrd_liberror[ERRBUFLEN+10];
+static int  rrd_context_init = 0;
 /* The global context is very useful in the transition period to even
    more thread-safe stuff, it can be used whereever we need a context
    and do not need to worry about concurrency. */
 static struct rrd_context global_ctx = {
-    sizeof(rrd_error),
-    sizeof(rrd_liberror),
+    MAXLEN,
+    ERRBUFLEN,
     rrd_error, 
     rrd_liberror
 };
-#include <stdarg.h>
+/* #include <stdarg.h> */
 
-struct rrd_context *rrd_get_context() {
+struct rrd_context *rrd_get_context(void) {
+    if (! rrd_context_init ){
+	rrd_context_init = 1;
+        global_ctx.rrd_error[0]='\0';
+        global_ctx.lib_errstr[0]='\0';
+    }
     return &global_ctx;
 }


Index: rrdtool.spec
===================================================================
RCS file: /cvs/extras/rpms/rrdtool/devel/rrdtool.spec,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- rrdtool.spec	14 Dec 2006 20:47:40 -0000	1.27
+++ rrdtool.spec	2 Jan 2007 17:06:52 -0000	1.28
@@ -7,7 +7,7 @@
 Summary: Round Robin Database Tool to store and display time-series data
 Name: rrdtool
 Version: 1.2.15
-Release: 8%{?dist}
+Release: 9%{?dist}
 License: GPL
 Group: Applications/Databases
 URL: http://people.ee.ethz.ch/~oetiker/webtools/%{name}/
@@ -16,6 +16,7 @@
 Patch0: rrdtool-1.2.13-php.patch
 Patch1: rrdtool-1.2.15-initrrdtool.patch
 Patch2: rrdtool-1.2.15-log_grid_leak.patch
+Patch3: rrdtool-1.2.15-long_error_string.patch
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires: gcc-c++, openssl-devel, freetype-devel
 BuildRequires: libpng-devel, zlib-devel, libart_lgpl-devel >= 2.0
@@ -114,6 +115,7 @@
 %endif
 %patch1 -p1 -b .initrrdtool
 %patch2 -p1 -b .leak
+%patch3 -p1 -b .longstring
 
 # 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' \
@@ -272,6 +274,10 @@
 %endif
 
 %changelog
+* Tue Jan 02 2007 Jarod Wilson <jwilson at redhat.com> 1.2.15-9
+- Fix crash with long error strings (upstream
+  changesets 929 and 935)
+
 * Thu Dec 14 2006 Jarod Wilson <jwilson at redhat.com> 1.2.15-8
 - Fix for log grid memory leak (#201241)
 




More information about the scm-commits mailing list