Patch Name: PHCO_28467 Patch Description: s700_800 11.04 (VVOS) sort(1) cumulative patch Creation Date: 02/12/20 Post Date: 03/01/08 Hardware Platforms - OS Releases: s700: 11.04 s800: 11.04 Products: N/A Filesets: OS-Core.UX-CORE,fr=B.11.04,fa=HP-UX_B.11.04_32/64,v=HP Automatic Reboot?: No Status: General Release Critical: No Category Tags: defect_repair general_release Path Name: /hp-ux_patches/s700_800/11.X/PHCO_28467 Symptoms: PHCO_28467: Repackaged HP-UX patch PHCO_27565 for VVOS Based on HP-UX patch PHCO_27565: 1.Improper handling of certain files by sort(1). 2.When sorting by field, sort(1) skips the last character if a file does not terminate with a newline character and LANG is not set to C. 3.sort '-o' option loops infinitely, and a line repeats itself forever as an output only in certain situations for multibyte locales. 4.sort(1) fails to remove duplicates with -u option for the non C locales. PHCO_19404: Repackaged HP-UX patch PHCO_17809 for VVOS Based on HP-UX patch PHCO_17809: sort -k1 option fails for ascii characters whose value is > 127. Based on HP-UX patch PHCO_13587: UTF8 changes incorporated for various options for sort Defect Description: PHCO_28467: Repackaged HP-UX patch PHCO_27565 for VVOS Based on HP-UX patch PHCO_27565: 1.Improper handling of certain files by sort(1). Resolution: The code has been modified to handle the files appropriately. 2.When sorting (by field) a file which does not have a terminating newline, and where the LANG variable is not set to C, the command does not output the last character of the file. The problem occured because the integer counter was not being incremented to handle the new line character. Here are the steps to reproduce the problem: # echo 'one one\ntwo two\c' > TST # cat TST one one two two [ note that there is no newline at the end of file ] # unset LANG ## First, the correct results: # sort -k 1,1 TST sort: Warning: A newline character was added to the end of file TST. one one two two # export LANG=french # sort -k 1,1 TST sort: Warning: A newline character was added to the end of file TST. sort: Warning: A newline character was added to the end of file TST. one one two tw <=== the "o" in "two" has been removed Resolution: The problem was due to one of the internal variable (used to count the number of newlines) not getting properly incremented when the newline appears. The problem was corrected by incrementing the counter to handle the newline character appropriately. 3.The sort(1) command loops infinitely in certain cases, and the problem was due the incorrect return value on encountering WEOF.It was not returning a NULL at end of file hence sort(1) went into an infinite loop as it was not able to fine the end of file.This occured only in case of multibyte locales. Resolution: The sort(1) code has been modified to return NULL when sort(1) encounters EOF. 4.sort(1) fails to remove duplicates with -u option as the code was not copying the full record to the save area for non C locales. The partial copy was a resulting as non C locales can have '\n' as a key. Resolution: The code has been modified to take care of the above problem by handling the swapping of records appropriately. PHCO_19404: Repackaged HP-UX patch PHCO_17809 for VVOS Based on HP-UX patch PHCO_17809: sort -k1 option was failing for ascii characters with values > 127 due to improper typecasting of the pointer variable holding the characters to be sorted. Resolution: The pointer variable holding data to be sorted has been typecasted to unsigned character to facilitate correct sorting of ascii characters > 127. Based on HP-UX patch PHCO_13587: Enhanced the sort option -i for UTF8 locale changes Enhancement: No SR: 8606259335 8606202868 8606215245 8606225452 4701427807 5003448423 4701377283 Patch Files: OS-Core.UX-CORE,fr=B.11.04,fa=HP-UX_B.11.04_32/64,v=HP: /usr/bin/sort what(1) Output: OS-Core.UX-CORE,fr=B.11.04,fa=HP-UX_B.11.04_32/64,v=HP: /usr/bin/sort: $Revision: 82.4.1.11 $ PATCH_11_00: sort.o hpux_rel.o 02/08/01 cksum(1) Output: OS-Core.UX-CORE,fr=B.11.04,fa=HP-UX_B.11.04_32/64,v=HP: 3593963668 49152 /usr/bin/sort Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHCO_19404 Equivalent Patches: PHCO_27565: s700: 11.00 s800: 11.00 Patch Package Size: 70 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_28467 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHCO_28467.depot By default swinstall will archive the original software in /var/adm/sw/save/PHCO_28467. 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_28467.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHCO_28467.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHCO_28467.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None