Patch Name: PHCO_25918 Patch Description: s700_800 11.11 sort(1) cumulative patch Creation Date: 02/08/12 Post Date: 02/09/06 Hardware Platforms - OS Releases: s700: 11.11 s800: 11.11 Products: N/A Filesets: OS-Core.UX-CORE,fr=B.11.11,fa=HP-UX_B.11.11_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_25918 Symptoms: PHCO_25918: ( SR:8606259335 CR:JAGae23653 ) Improper handling of certain files by sort(1). ( SR:8606215245 CR:JAGad84433 ) 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. ( SR:8606225452 CR:JAGad94539 ) sort '-o' option loops infinitely, and a line repeats itself forever as an output only in certain situations for multibyte locales. ( SR:8606202868 CR:JAGad72042 ) Improper handling of certain files by sort(1). Defect Description: PHCO_25918: ( SR:8606259335 CR:JAGae23653 ) Improper handling of certain files by sort(1). Resolution: The code has been modified to handle the files appropriately. ( SR:8606215245 CR:JAGad84433 ) 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. ( SR:8606225452 CR:JAGad94539 ) 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 find 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. ( SR:8606202868 CR:JAGad72042 ) Improper handling of certain files by sort(1). Resolution: The code has been modified to handle the files appropriately. SR: 8606202868 8606215245 8606225452 8606259335 Patch Files: OS-Core.UX-CORE,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP: /usr/bin/sort what(1) Output: OS-Core.UX-CORE,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP: /usr/bin/sort: $Revision: @(#) sort CUP11.11_BL2002_0812_3 PATCH_11 .11 PHCO_25918 Mon Aug 12 07:41:57 PDT 2002 $ cksum(1) Output: OS-Core.UX-CORE,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP: 4244478368 45056 /usr/bin/sort Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: None Equivalent Patches: None 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_25918 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHCO_25918.depot By default swinstall will archive the original software in /var/adm/sw/save/PHCO_25918. 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_25918.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHCO_25918.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHCO_25918.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None