Hi,

there is another potential FTBFS:

/bin/bash ../libtool --tag=CC   --mode=compile i686-linux-gnulp-gcc
-DHAVE_CONFIG_H -I.  -DPREFIX='"/usr"'
-DCONFIGFILE='"/etc/collectd.conf"' -DLOCALSTATEDIR='"/var"'
-DPKGLOCALSTATEDIR='"/var/lib/collectd"'
-DPIDFILE='"/var/run/collectd.pid"' -DPLUGINDIR='"/usr/lib/collectd"'
-DPKGDATADIR='"/usr/share/collectd"'
-I/build/buildd/collectd-4.6.2/debian/include
-DLT_LAZY_OR_NOW='RTLD_LAZY|RTLD_GLOBAL' -UCONFIGFILE
-DCONFIGFILE='"/etc/collectd/collectd.conf"' -Wall -Werror  -Wall -g -O2
-MT rrdtool_la-rrdtool.lo -MD -MP -MF .deps/rrdtool_la-rrdtool.Tpo -c -o
rrdtool_la-rrdtool.lo `test -f 'rrdtool.c' || echo './'`rrdtool.c
 i686-linux-gnulp-gcc -DHAVE_CONFIG_H -I. -DPREFIX=\"/usr\"
-DCONFIGFILE=\"/etc/collectd.conf\" -DLOCALSTATEDIR=\"/var\"
-DPKGLOCALSTATEDIR=\"/var/lib/collectd\"
-DPIDFILE=\"/var/run/collectd.pid\" -DPLUGINDIR=\"/usr/lib/collectd\"
-DPKGDATADIR=\"/usr/share/collectd\"
-I/build/buildd/collectd-4.6.2/debian/include
"-DLT_LAZY_OR_NOW=RTLD_LAZY|RTLD_GLOBAL" -UCONFIGFILE
-DCONFIGFILE=\"/etc/collectd/collectd.conf\" -Wall -Werror -Wall -g -O2
-MT rrdtool_la-rrdtool.lo -MD -MP -MF .deps/rrdtool_la-rrdtool.Tpo -c
rrdtool.c  -fPIC -DPIC -o .libs/rrdtool_la-rrdtool.o
cc1: warnings being treated as errors
rrdtool.c: In function 'rrd_queue_thread':
rrdtool.c:280: error: 'values' may be used uninitialized in this function
rrdtool.c:281: error: 'values_num' may be used uninitialized in this
function
make[4]: *** [rrdtool_la-rrdtool.lo] Error 1

Attached patch fixes both issues with this package, both changes are
taken from upstream.

Thanks.
#! /bin/sh /usr/share/dpatch/dpatch-run
## upstream_fix_ftbfs.dpatch by Florian Forster
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Fix a FTBFS with gcc4.4 by cherrypicking the change from upstream.
## DP: Debian report: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=526667
## DP: Ubuntu report: https://bugs.edge.launchpad.net/bugs/381489

@DPATCH@
diff -urNad collectd-4.6.2~/src/ntpd.c collectd-4.6.2/src/ntpd.c
--- collectd-4.6.2~/src/ntpd.c  2009-04-14 04:25:31.000000000 +0200
+++ collectd-4.6.2/src/ntpd.c   2009-05-21 01:34:32.000000000 +0200
@@ -878,25 +878,33 @@
 
                        if (ptr->v6_flag)
                        {
-                               struct sockaddr_in6 *sa_ptr;
-                               sa_ptr = (struct sockaddr_in6 *) &sa;
+                               struct sockaddr_in6 sa6;
 
-                               sa_ptr->sin6_family = AF_INET6;
-                               sa_ptr->sin6_port = htons (123);
-                               memcpy (&sa_ptr->sin6_addr, &ptr->srcadr6,
+                               assert (sizeof (sa) >= sizeof (sa6));
+
+                               memset (&sa6, 0, sizeof (sa6));
+                               sa6.sin6_family = AF_INET6;
+                               sa6.sin6_port = htons (123);
+                               memcpy (&sa6.sin6_addr, &ptr->srcadr6,
                                                sizeof (struct in6_addr));
-                               sa_len = sizeof (struct sockaddr_in6);
+                               sa_len = sizeof (sa6);
+
+                               memcpy (&sa, &sa6, sizeof (sa6));
                        }
                        else
                        {
-                               struct sockaddr_in *sa_ptr;
-                               sa_ptr = (struct sockaddr_in *) &sa;
+                               struct sockaddr_in sa4;
 
-                               sa_ptr->sin_family = AF_INET;
-                               sa_ptr->sin_port = htons (123);
-                               memcpy (&sa_ptr->sin_addr, &ptr->srcadr,
+                               assert (sizeof (sa) >= sizeof (sa4));
+
+                               memset (&sa4, 0, sizeof (sa4));
+                               sa4.sin_family = AF_INET;
+                               sa4.sin_port = htons (123);
+                               memcpy (&sa4.sin_addr, &ptr->srcadr,
                                                sizeof (struct in_addr));
-                               sa_len = sizeof (struct sockaddr_in);
+                               sa_len = sizeof (sa4);
+
+                               memcpy (&sa, &sa4, sizeof (sa4));
                        }
 
                        if (do_reverse_lookups == 0)
diff -urNad collectd-4.6.2~/src/rrdtool.c collectd-4.6.2/src/rrdtool.c
--- collectd-4.6.2~/src/rrdtool.c       2009-04-14 04:25:31.000000000 +0200
+++ collectd-4.6.2/src/rrdtool.c        2009-05-21 01:37:26.000000000 +0200
@@ -282,6 +282,9 @@
                int    status;
                int    i;
 
+               values = NULL;
+               values_num = 0;
+
                 pthread_mutex_lock (&queue_lock);
                 /* Wait for values to arrive */
                 while (true)

Reply via email to