> ==17454== Conditional jump or move depends on uninitialised value(s)
> ==17454== at 0x5921F10: strchrnul (in /lib/libc-2.11.3.so)
> ==17454== by 0x58E55D6: vfprintf (in /lib/libc-2.11.3.so)
> the involved fuctions are shown below; the statement in question (see below)
> is
>
> sprintf (select_anw, sel_anw, name, name); <********* sisisinst.c:1397
>
> I have checked carefully the code and the 4 args to sprintf() are
> all correct defined on the stack; when I change the code to:
>
>
> select_anw[0] = '\0';
> sprintf (select_anw, sel_anw, name, name);
>
> then is valgrind happy, i.e, does not raise the messages any more;
You say that all 4 args are on the stack. What are their actual addresses?
Run with --db-attach=yes, say 'y' when asked, and use gdb to look around.
One possibility is that sel_anw (the format string) has been overwritten
because the string being built into select_anw (the buffer) has overflowed.
Try changing the code to use
snprintf(select_anw, LEN_SELECT, sel_anw, name, name);
which is much safer.
------------------------------------------------------------------------------
Infragistics Professional
Build stunning WinForms apps today!
Reboot your WinForms applications with our WinForms controls.
Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk
_______________________________________________
Valgrind-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-users