From Bugzilla Helper: User-Agent: Mozilla/4.78 [en] (X11; U; Linux 2.4.9-13 i686) Description of problem: $ rpm -q --whatprovides /usr/lib/libncurses.so ncurses-devel-5.2-12 $ cat broke.c #include <ncurses.h> main() { attr_t attr; attr = 0; initscr(); mvchgat(0, 0, 40, attr, 0, NULL); refresh(); endwin(); } $ gcc -g -o broke broke.c -lm -lncurses $ ./broke Segmentation fault Well, there's the problem, alrlright! If linked against the libncurses.so that was in RH 7.0, it works fine. Version-Release number of selected component (if applicable): How reproducible: Always
Here's a workaround if you have the luxury of being able to recompile the application... but it won't fix any applications that are binary-only... #if 0 // Busted in RH 7.2 mvchgat(y, x, wid, attr, 0, NULL); #else { int i; for (i = 0; i < wid; ++i) { chtype ch; ch = mvinch(y, x+i); ch &= 0xff; ch |= attr; mvaddch(y, x+i, ch); } } #endif
Fixed in 5.2-13
I am confused. This library is fundamental to the proper operation of Curses applications. Why isn't the fix being made available to all Redhat 7.2 users via Update Agent? Is it Redhat's intent that binary applications must be statically linked with a working ncurses, rather than with the broken dynamic library supplied in RH 7.2?