Patch Name: PHCO_27242 Patch Description: s700_800 11.11 more(1) cumulative patch Creation Date: 02/07/16 Post Date: 02/07/30 Hardware Platforms - OS Releases: s700: 11.11 s800: 11.11 Products: N/A Filesets: OS-Core.CMDS-MIN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP Automatic Reboot?: No Status: General Release Critical: Yes PHCO_27242: ABORT HANG PHCO_26083: HANG Category Tags: defect_repair enhancement general_release critical halts_system Path Name: /hp-ux_patches/s700_800/11.X/PHCO_27242 Symptoms: PHCO_27242: ( SR:8606168690 CR:JAGad37968 ) The more(1) and page(1) do not support files greater than 2GB. ( SR:8606232376 CR:JAGae01611 ) In a multibyte locale environment, more(1) hangs when an invalid character is entered and erased by backspace, while entering command from stdin. ( SR:8606174802 CR:JAGad44048 ) more(1) command dumps core or gives "read error" when viewing the binary files. ( SR:8606233175 CR:JAGae02398 ) Duplicate ( SR:8606227499 CR:JAGad96557 ) In a multibyte locale environment, more(1) gives wrong output when input is from stdin. ( SR:8606223261 CR:JAGad92364 ) more(1) does not work as expected with input file containing large number of escape characters (^A). PHCO_26083: ( SR:8606232376 CR:JAGae01611 ) more(1) hanges when an invalid character entered and deleted under multibyte locale while entering command from stdin. ( SR:8606233175 CR:JAGae02398 ) more(1) works incorrectly for input from stdin in multibyte locale. ( SR:8606227499 CR:JAGad96557 ) more(1) command is giving invalid output under multi-byte locale environment. Defect Description: PHCO_27242: ( SR:8606168690 CR:JAGad37968 ) The more(1) and page(1) commands exits with error message "Value too large to be stored in data type" when used on large files(>2GB). For example: $ ll test_file -rw-rw-rw- 1 root sys 2560000000 [...snipped..] $more test_file [..Snipped..]Value too large to be stored in data type Resolution: more(1) is a 32 bit binary and the data types used initially couldn't handle values greater than 2GB. Hence when the size of the file exceeds 2GB, more(1) used to report the above mentioned error message and exit. Now, more(1) is enhanced to support large files. The variables are replaced with new variables capable of holding large values. ( SR:8606232376 CR:JAGae01611 ) more(1) hangs when an invalid character(e.g. ^K) is entered and deleted by pressing backspace under multibyte locale environment at !command prompt. For example: $export LANG=ja_JP.SJIS $ll -R /dev | more [....snipped....] crw-rw-rw- 1 root other [...snipped....] !abc^K <== This is entered from keyboard Now if ^K is deleted by pressing backspace, it hangs. Resolution: more(1) checks for the number of column position of the characters to be deleted. When a character is an invalid character(^K) more(1) is not able to recognize it under multibyte environment. The code is changed to recognize it properly. ( SR:8606174802 CR:JAGad44048 ) more(1) command core dumps or gives "read error" when viewing the binary files. For example: $ more [....snipped.....] memory fault(core dump) Resolution: more(1) reads blocks of data. A variable is used to count the number of control characters read in each block. This variable was not initialized prior to each block being read, as a consequence more(1) tries to write additional blocks which eventually results in a core dump. Now more(1) code has been changed to properly initialize the variable before reading each block. Though more(1), dumping core while viewing binary files is resolved, there are few problems still exist when reading binary files. As more(1) uses the terminal interfaces, some of the control characters in the binary data file could be interpreted by the terminals. We advise users to use the more(1) utility to view text files and use other commands such as xd(1) for viewing binary data files. ( SR:8606233175 CR:JAGae02398 ) Duplicate ( SR:8606227499 CR:JAGad96557 ) For some multibyte locales, more(1) is eating up some characters from the output when the input is from stdin. For example: $export LANG=ja_JP.eucJP $wc file 66 93 3269 file $more file | wc 66 93 3269 $more < file | wc 62 90 3142 ^^ ^^ ^^^^ (The above output is wrong) Resolution: more(1) was checking wrongly for the EOF while reading a file. In a multibyte environment, it was not able to process the input properly when a multibyte character spans across the boundary of two successive input buffers. The code is changed to take care of this situation. If an incomplete character is encountered at the boundary of input buffer, it is carried forward to next buffer. ( SR:8606223261 CR:JAGad92364 ) more(1) behaves incorrectly when the input file contains large number of escape characters (^A). For example: 1. it hangs after reading certain number of escape characters (^A) from the input file. 2. The terminal session gets killed with pipe error message when more(1) takes input from stdin and the output is piped to wc(1) command. $more < file | wc Pipe error Connection closed. Resolution: There was special handling for escape character (^A) at the time of input processing by more(1). The code has been modified to take care that this handling is delayed till the output processing. PHCO_26083: ( SR:8606232376 CR:JAGae01611 ) More was not dealing properly with multibyte nonprintable character.It used to hang when a nonprintable character was edited and erased at !command mode under multibyte locales. Resolution: The code was modified to handle multibyte non-printable characters properly. ( SR:8606233175 CR:JAGae02398 ) More garbles output when fed multibyte characters through a pipe.It was eating up some bytes when contents of a file, created under a multibyte locale, is fed to more through a pipe. Resolution: The code of more(1) is changed to take care of multibyte characters fed through a pipe. ( SR:8606227499 CR:JAGad96557 ) more(1) was eating up some character when fed through pipe under multibyte locale environment. Steps to reproduce the problem. $ export LANG=ja_JP.eucJP $ man 2 pause > file $ wc file 66 93 3269 file $ more file | wc 66 93 3269 $ cat file | more | wc 62 90 3142 Resolution: The code was changed to handle multibyte characters. SR: 8606168690 8606174802 8606223261 8606227499 8606232376 8606233175 Patch Files: OS-Core.CMDS-MIN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP: /usr/bin/more /usr/bin/page /usr/lib/nls/msg/C/more.cat what(1) Output: OS-Core.CMDS-MIN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP: /usr/bin/more: ch.c $Date: 2002/07/05 00:05:18 $Revision: r11.11/4 PATCH_11.11 (PHCO_27242) command.c $Date: 2002/07/05 00:05:18 $Revision: r11. 11/2 PATCH_11.11 (PHCO_27242) input.c $Date: 2002/07/05 00:05:18 $Revision: r11.11 /1 PATCH_11.11 (PHCO_27242) line.c $Date: 2002/07/05 00:05:18 $Revision: r11.11/ 2 PATCH_11.11 (PHCO_27242) linenum.c $Date: 2002/07/05 00:05:18 $Revision: r11. 11/1 PATCH_11.11 (PHCO_27242) main.c $Date: 2002/07/05 00:05:18 $Revision: r11.11/ 1 PATCH_11.11 (PHCO_27242) option.c $Date: 2002/07/05 00:05:18 $Revision: r11.1 1/1 PATCH_11.11 (PHCO_27242) os.c $Date: 2002/07/05 00:05:18 $Revision: r11.11/1 PATCH_11.11 (PHCO_27242) position.c $Date: 2002/07/05 00:05:18 $Revision: r11 .11/1 PATCH_11.11 (PHCO_27242) prim.c $Date: 2002/07/05 00:05:18 $Revision: r11.11/ 1 PATCH_11.11 (PHCO_27242) tags.c $Date: 2002/07/05 00:05:18 $Revision: r11.11/ 1 PATCH_11.11 (PHCO_27242) $Revision: @(#) more CUP11.11_BL2002_0716_3 PATCH_11 .11 PHCO_27242 Tue Jul 16 12:19:42 PDT 2002 $ /usr/bin/page: ch.c $Date: 2002/07/05 00:05:18 $Revision: r11.11/4 PATCH_11.11 (PHCO_27242) command.c $Date: 2002/07/05 00:05:18 $Revision: r11. 11/2 PATCH_11.11 (PHCO_27242) input.c $Date: 2002/07/05 00:05:18 $Revision: r11.11 /1 PATCH_11.11 (PHCO_27242) line.c $Date: 2002/07/05 00:05:18 $Revision: r11.11/ 2 PATCH_11.11 (PHCO_27242) linenum.c $Date: 2002/07/05 00:05:18 $Revision: r11. 11/1 PATCH_11.11 (PHCO_27242) main.c $Date: 2002/07/05 00:05:18 $Revision: r11.11/ 1 PATCH_11.11 (PHCO_27242) option.c $Date: 2002/07/05 00:05:18 $Revision: r11.1 1/1 PATCH_11.11 (PHCO_27242) os.c $Date: 2002/07/05 00:05:18 $Revision: r11.11/1 PATCH_11.11 (PHCO_27242) position.c $Date: 2002/07/05 00:05:18 $Revision: r11 .11/1 PATCH_11.11 (PHCO_27242) prim.c $Date: 2002/07/05 00:05:18 $Revision: r11.11/ 1 PATCH_11.11 (PHCO_27242) tags.c $Date: 2002/07/05 00:05:18 $Revision: r11.11/ 1 PATCH_11.11 (PHCO_27242) $Revision: @(#) more CUP11.11_BL2002_0716_3 PATCH_11 .11 PHCO_27242 Tue Jul 16 12:19:42 PDT 2002 $ /usr/lib/nls/msg/C/more.cat: None cksum(1) Output: OS-Core.CMDS-MIN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP: 3827794121 73728 /usr/bin/more 3827794121 73728 /usr/bin/page 1024240630 4286 /usr/lib/nls/msg/C/more.cat Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHCO_26083 Equivalent Patches: PHCO_26916: s700: 11.00 s800: 11.00 Patch Package Size: 110 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_27242 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHCO_27242.depot By default swinstall will archive the original software in /var/adm/sw/save/PHCO_27242. If you do not wish to retain a copy of the original software, include the patch_save_files option in the swinstall command above: -x patch_save_files=false WARNING: If patch_save_files is false when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. For future reference, the contents of the PHCO_27242.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHCO_27242.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHCO_27242.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None