On 6/26/06, james(a)dis-dot-dat.net <james(a)dis-dot-dat.net> wrote:
On Mon, 26 Jun, 2006 at 10:16AM -0500, Jack O'Quin
spake thus:
libjack seems OK already, but there was an
unitialied char
written by jackd. I fixed that and committed it as [0.102.18].
I don't have valgrind set up correctly on my new laptop. Could
one of you please update to the latest SVN version and verify
whether this fixes that warning message?
OK, since I brought it up I thought I'd better test it out. Sorry,
but I still get the same problem.
Compiling from the raw SVN-delivered source instead of emerging it
might have given a bit of a hint, though. Valgrind is now able to
give the location inside jack that the error occurs: client.c, line
240
I've attached a log from valgrind (includes my own debugging output,
easily ignored).
OK, I see it now. All those uninitialized write complaints are due to
the fact that jack_request_t is a union. Most requests don't need (or
want) to fill in all the bytes, just the ones that matter for that
RequestType.
There are jack_request_t structs used all over the place. The only
solution I can think of that would make valgrind happy would be to
initialize them all to zeroes before filling them in. While that would
eliminate these complaints, I have some doubts that we really want
to make all those changes. There is some risk of introducing real
bugs while fixing them.
Those valgrind warnings really *are* annoying, of course.
--
joq