|
From: Micah N G. <val...@mi...> - 2009-02-13 17:00:10
|
Doesn't `definedness' propagate in valgrind? Further, as I remember
> you would only see an issue when the uninitialized value directed a
> computation, or was output.
>
> For example:
>
> 1 int m(int x) {
> 2 return x + 42;
> 3 }
> 4 int main() {
> 5 int y;
> 6 int z = 19;
> 7 z = m(y);
> 8 if(z > 50) {
> 9 puts("big z!");
> 10 }
> 11 return 0;
> 12 }
>
> As I remember, valgrind would complain about line 8 here, *not* line 7.
> (Please somebody correct me if I'm wrong! :)
>
> That said, is it possible that one of your arguments to SSL_read is
> uninitialized? If you throw a printf on those args on the line before
> the call, does valgrind complain at the printf?
>
> -tom
>
That is a REALLY useful example. I've been having a bit of hard time with the
way valgrind reports uninitialized variables, since it isn't complaining about
them being passed around. It is very different from what a compiler would warn
about for example.
Your example really makes it very clear. I've still got to review our BIO, and
now all the arguments being passed to SSL_Read().
Micah
|