Package: bindgraph
Version: 0.2-5
Severity: grave
Tags: patch

Hi,

When browsing http://localhost/cgi-bin/bindgraph.cgi I do not see any
graphs, all I see is:

DNS Statistics for [hostname]
Last Hours Graph

bindgraph image 0
Day Graph

bindgraph image 1
Week Graph

bindgraph image 2
Month Graph

bindgraph image 3
Year Graph

bindgraph image 4

bindgraph 0.2 by Marco Delaurenti and Marco d'Itri


Digging deeper, I see the following error when generating the graphs
causing no graphs to appear when accessing the graph URLS (eg.
http://localhost/cgi-bin/bindgraph.cgi/bindgraph_1.png ):

ERROR: 
RRDs::graph(/var/cache/bindgraph/,cgi-bin,bindgraph.cgi/bindgraph_1.png.tmp, 
...): Garbage ': Thu Jan 24 15:10:00 2008    graph created on Thu Jan 24 
15:12:35 2008\r' after command:
COMMENT:last update: Thu Jan 24 15:10:00 2008    graph created on Thu Jan 24 
15:12:35 2008\r


After some searching with google, I determined that the error is caused
by unescaped colons (:) in the COMMENT field.  This behavior was
changed in rrdtool 1.2.x -- previously this was not an error.


So, attached is a patch to fix bindgraph.cgi to work with the rrdtool
1.2.x series.

--Joe

-- System Information:
Debian Release: 4.0
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.4.27-2um
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

Versions of packages bindgraph depends on:
ii  debconf [debconf-2.0]        1.5.11etch1 Debian configuration management sy
ii  libfile-tail-perl            0.98-5      File::Tail perl module
ii  librrds-perl                 1.2.15-0.3  Time-series data storage and displ

Versions of packages bindgraph recommends:
ii  bind9                     1:9.3.4-2etch1 Internet Domain Name Server
ii  lighttpd [httpd]          1.4.13-4etch4  A fast webserver with minimal memo
ii  thttpd [httpd]            2.23beta1-5    tiny/turbo/throttling HTTP server

-- debconf information excluded
--- /var/www/cgi-bin/bindgraph.cgi.orig 2008-01-24 14:55:11.000000000 +0000
+++ /var/www/cgi-bin/bindgraph.cgi      2008-01-24 15:01:21.000000000 +0000
@@ -93,6 +93,12 @@ sub graph($$$;$) {
                }
        }
 
+       # escape colons in COMMENT field (needed for rrdtool 1.2.x
+       my $update_time = localtime(last_update($rrd));
+       $update_time =~ s/\:/\\:/g;
+       my $time_now = localtime(time);
+       $time_now =~ s/\:/\\:/g;
+
        my ($text, $xs, $ys) = RRDs::graph(
                $file,
                '--imgformat', 'PNG',
@@ -106,8 +112,8 @@ sub graph($$$;$) {
                @rrdef,
                @rrprint,
                'COMMENT:\s',
-               'COMMENT:last update: ' . localtime(last_update($rrd))
-                       . '    graph created on ' . localtime(time) . '\r',
+               'COMMENT:last update\: ' . $update_time
+                       . '    graph created on ' . $time_now . '\r',
        );
        my $err = RRDs::error;
        die_fatal("RRDs::graph($file, ...): $err") if $err;

Reply via email to