Henrik Nordstrom wrote:
On Mon, 2008-03-24 at 00:16 +1300, Amos Jeffries wrote:
I care about every potential cause of trouble in squid. Particularly
avoidable ones that pop up all the time. 'Zero errors' policy and all that.
It may be that this is fixable by setting the first byte of the buffer
to '\0'. I'm just busy working on the other more serious ones myself
tonight.
You need to set the whole buffer to 0.
In Squid-2 we have the following fragment to deal with this warning:
if (RUNNING_ON_VALGRIND) {
/* Keep valgrind happy.. complains about uninitialized bytes otherwise
*/
memset(&ev, 0, sizeof(ev));
}
I found that in 3.x as well. It turns out those bits of valgrind code
only occur if both --enable-leakfinder and --with-valgrind-debug are
enabled.
My test script only had "--with-valgrind" which wasn't doing even the
job it needed to :-(
FWIW: Is there any reason why we need separate leakfinder and valgrind
modes?
Alternatively one can spend a little time to teach valgrind about how
epoll_ctl reads it's parameters.. The warning comes from the data member
being an union of different sizes depending on the epoll_ctl call used..
Regards
Henrik
Amos
--
Please use Squid 2.6STABLE17+ or 3.0STABLE1+
There are serious security advisories out on all earlier releases.