valgrind --error-limit=no --leak-check=yes --show-reachable=yes mutt 2>valgrind-mutt.out valgrind-mutt.out will be filled with many instances of .. ==23073== Conditional jump or move depends on uninitialised value(s) ==23073== at 0x392C321723: (within /usr/lib64/libncursesw.so.5.5) ==23073== by 0x392C321C79: (within /usr/lib64/libncursesw.so.5.5) ==23073== by 0x392C321551: _nc_scroll_optimize (in /usr/lib64/libncursesw.so.5.5) ==23073== by 0x392C3370BF: doupdate (in /usr/lib64/libncursesw.so.5.5) ==23073== by 0x392C32EA4B: wrefresh (in /usr/lib64/libncursesw.so.5.5) ==23073== by 0x43A341: ??? (pager.c:1738) ==23073== by 0x410059: ??? (commands.c:181) ==23073== by 0x418159: ??? (curs_main.c:1070) ==23073== by 0x42DFE0: ??? (main.c:842) ==23073== by 0x392BA1D023: __libc_start_main (in /lib64/libc-2.3.90.so)
It's a problem in ncurses, there is a compiler padding in cchar_t structure and memcmp() on the struct that wasn't memset() before causes the warning.
I do not see this as a bug in ncurses. Please, can you compile/install *.src below (all devel versions) and repeat your scenario: mutt valgrind ncurses Many thanks. Petr Raszyk
Created attachment 125107 [details] ncurses-5.5-18.2.src.rpm
Created attachment 125108 [details] mutt-1.4.2.1-6.2.1.src.rpm
Created attachment 125110 [details] valgrind-3.1.0-1.2.src.rpm
These are the exact versions I already have installed, along with debuginfo's. What would rebuilding them from source achieve ?
I do not see this as a bug in ncurses
It is fixed in rawhide.
That's interesting, but the patch does not fix the problem that I'm interested in: ncurses supposedly initializes the cchar_t's either via static declarations or calloc's. I see a couple of places where NewChar() and NewChar2() are used on the stack. Those are probably what was reported.