Patch Name: PHCO_21018 Patch Description: s700_800 10.20 Xcurses library, curses.h cumulative patch Creation Date: 00/03/30 Post Date: 00/04/20 Hardware Platforms - OS Releases: s700: 10.20 s800: 10.20 Products: N/A Filesets: OS-Core.CORE-SHLIBS ProgSupport.C-INC Automatic Reboot?: No Status: General Release Critical: No Path Name: /hp-ux_patches/s700_800/10.X/PHCO_21018 Symptoms: PHCO_21018: 1> While compiling with HP ANSI C++ compiler, it reports an error at 'bool'. 2> The A_ATTRIBUTES macro in curses.h does not have brackets. PHCO_16961: 1> initscr() dumps core when TERM environment variable is too long. 2> Curses attribute functions do not work properly with libxcurses.1 PHCO_14654: The delwin(3X) coredumps in some cases. PHCO_11342: The X/Open curses API getch() waits indefinitely for input to complete a keypad sequence. PHCO_11036: Various XCurses APIs were fixed during 10.30 and the same had to be backported to 10.20. PHCO_9295: 1. In 10.20, high-lighted fields cannot be reverted to normal in an application which links with -lcurses. 2. Application uses select() systems call core dumps. Defect Description: PHCO_21018: 1> The type declaration for 'bool' in curses header file creates a conflict with the keyword 'bool' in ANSI C++. This is because 'bool' is a reserved word for ANSI C++. Resolution: Changing the type definition of 'bool' in preprocessor macro to avoid conflict with ANSI C++ solves the problem. 2> The missing brackets around the macro A_ATTRIBUTES can cause an operator precedence problem in some expressions which use this macro. Resolution: Adding the missing brackets to the macro solves the problem. PHCO_16961: 1> initscr() dumps core when the TERM environment variable is too long. This is due to a buffer overflow in the routine. 2> X/Open curses do not take care of the 'sgr' entry of the terminfo database, if the ceol_standout_glitch and the magic_cookie_glitch are set in the database. This results in display attributes not being properly set on terminals like hpterm. PHCO_14654: The call to delwin() coredumps in some remote cases. This is basically because of a buffer overflow in the library. PHCO_11342: When keypad is enabled, the X/Open curses API getch() should wait for some time after key is pressed for the next key to be pressed and return that sequence. If no key is pressed for some time the API should return alone. Currently getch() waits indefinitely for the next key to be pressed when is pressed. PHCO_11036: The 10.30 fixes to various XCurses APIs have been backported to 10.20. PHCO_9295: 1. 10.20 X/Open curses: high-lighted fields cannot be reverted to normal 2. 10.10 enhanced X/Open curses core dumps due to using wrong select call. SR: 8606110018 8606128204 5003435735 4701407213 4701376103 4701355313 1653201491 1653188920 5003344259 Patch Files: /usr/lib/libxcurses.1 /usr/include/curses.h what(1) Output: /usr/lib/libxcurses.1: /usr/lib/libcurses: $Revision: 78.2.1.20 $ /usr/include/curses.h: $Revision: /ux/core/libs/hdr/curses.h@@/main/r10dav/ libc_dav/3 $ */ curses:common/lib/xlibcurses/screen/curses.ed 1.60.2 .8 cksum(1) Output: 862118760 409600 /usr/lib/libxcurses.1 1866755989 77213 /usr/include/curses.h Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHCO_9295 PHCO_11036 PHCO_11342 PHCO_14654 PHCO_16961 Equivalent Patches: None Patch Package Size: 530 KBytes Installation Instructions: Please review all instructions and the Hewlett-Packard SupportLine User Guide or your Hewlett-Packard support terms and conditions for precautions, scope of license, restrictions, and, limitation of liability and warranties, before installing this patch. ------------------------------------------------------------ 1. Back up your system before installing a patch. 2. Login as root. 3. Copy the patch to the /tmp directory. 4. Move to the /tmp directory and unshar the patch: cd /tmp sh PHCO_21018 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHCO_21018.depot By default swinstall will archive the original software in /var/adm/sw/patch/PHCO_21018. If you do not wish to retain a copy of the original software, you can create an empty file named /var/adm/sw/patch/PATCH_NOSAVE. WARNING: If this file exists when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. It is recommended that you move the PHCO_21018.text file to /var/adm/sw/patch for future reference. To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHCO_21018.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None