Patch Name: PHCO_27577 Patch Description: s700_800 11.11 printf(1) cumulative patch Creation Date: 02/11/12 Post Date: 02/11/18 Hardware Platforms - OS Releases: s700: 11.11 s800: 11.11 Products: N/A Filesets: OS-Core.CMDS-AUX,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP Automatic Reboot?: No Status: General Release Critical: Yes PHCO_27577: ABORT Category Tags: defect_repair general_release critical halts_system Path Name: /hp-ux_patches/s700_800/11.X/PHCO_27577 Symptoms: PHCO_27577: ( SR:8606247884 CR:JAGae14284 ) Duplicate ( SR:8606247888 CR:JAGae14288 ) Duplicate ( SR:8606249910 CR:JAGae16296 ) printf(1) dumps core for some incorrect usage. ( SR:8606238453 CR:JAGae07477 ) printf(1) doesn't support multibyte characters. ( SR:8606160336 CR:JAGad29658 ) Duplicate ( SR:8606245005 CR:JAGae11486 ) printf % gives incorrect output. ( SR:8606249906 CR:JAGae16292 ) printf "%b" \\ gives incorrect output. ( SR:8606110866 CR:JAGab83616 ) printf(1) corrupts output when more than 2048 characters is given as input. ( SR:8606254518 CR:JAGae18850 ) printf(1) gives incorrect output for "\\045" in the format string. Defect Description: PHCO_27577: ( SR:8606247884 CR:JAGae14284 ) Duplicate ( SR:8606247888 CR:JAGae14288 ) Duplicate ( SR:8606249910 CR:JAGae16296 ) printf(1) dumps core for some incorrect usage. Here are the steps to reproduce the problem: $ printf "%ls" abcd Bus error(coredump) $ printf "%Lf" 12.34 Memory fault(coredump) Resolution: printf(1) will now given an error when it encounters any unlisted functionality. Change is done to accept only listed functionalities of printf(1). ( SR:8606238453 CR:JAGae07477 ) printf(1) does not support multibyte characters as arguments. Resolution: Some problems were found with the printing of multibyte characters. The printf(1) command has been changed to use wide characters to print multibyte characters. ( SR:8606160336 CR:JAGad29658 ) Duplicate ( SR:8606245005 CR:JAGae11486 ) printf(1) prints incorrect output with a single '%'. This does not follow the behavior required by standards. $ printf % _=/usr/bin/printf$ $ printf 100%200 _=/usr/bin/printf$ Resolution: The code has been modified to verify if the '%' format is having any valid input or not. If there is no option for '%', then printf(1) prints till the previous character of '%'. ( SR:8606249906 CR:JAGae16292 ) printf(1) prints a wrong output when %b is used in the format string. Here are the steps to reproduce the problem: $ printf "%b" \\ _=/usr/bin/printf$ Resolution: The issue was resolved and %b prints its output correctly. ( SR:8606110866 CR:JAGab83616 ) printf(1) corrupts output when the length of all arguments exceeds LINE_MAX (2048 currently on this HP-UX release). Resolution: printf(1) now correctly sizes the area of memory it uses to keep arguments. ( SR:8606254518 CR:JAGae18850 ) printf(1) prints '%%' for the format string "\\045" when printing octal numbers. It should print '%' instead of '%%'. Here are the steps to reproduce the problem: $ printf "\\045" %%$ Resolution: printf(1) has been modified to print the correct output. Enhancement: No SR: 8606110866 8606160336 8606238453 8606245005 8606247884 8606247888 8606249906 8606249910 8606254518 Patch Files: OS-Core.CMDS-AUX,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP: /usr/bin/printf /usr/lib/nls/msg/C/printf.cat what(1) Output: OS-Core.CMDS-AUX,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP: /usr/bin/printf: printf.c $Date: 2002/10/24 05:54:58 $Revision: r11.1 1/1 PATCH_11.11 (PHCO_27577) $Revision: @(#) printf CUP11.11_BL2002_1111_8 PATCH_ 11.11 PHCO_27577 Tue Nov 12 00:11:52 PST 2002 $ /usr/lib/nls/msg/C/printf.cat: None cksum(1) Output: OS-Core.CMDS-AUX,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP: 1907533647 24576 /usr/bin/printf 3087006270 178 /usr/lib/nls/msg/C/printf.cat Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: None Equivalent Patches: PHCO_27340: s700: 11.00 s800: 11.00 Patch Package Size: 50 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_27577 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHCO_27577.depot By default swinstall will archive the original software in /var/adm/sw/save/PHCO_27577. 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_27577.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHCO_27577.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHCO_27577.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None