Patch Name: PHCO_28515 Patch Description: s700_800 10.26 sort(1) cumulative patch Creation Date: 03/01/24 Post Date: 03/01/29 Hardware Platforms - OS Releases: s700: 10.26 s800: 10.26 Products: N/A Filesets: OS-Core.UX-CORE Automatic Reboot?: No Status: General Release Critical: No Path Name: /hp-ux_patches/s700_800/10.X/PHCO_28515 Symptoms: PHCO_28515: 1. Repackaging of 10.20 patch PHCO_27564 to 10.26 (TOS) (PHCO_27564:) 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 set to a locale other than C. 3. sort '-o' option loops infinitely, and a line repeats itself forever as an output only in certain situations for multibyte locales. (PHCO_19559:) 1. sort(1) gives an error "... more than 20480 characters" on ja_JP.SJIS locale. 2. sort -u fails to remove duplicates in non-C locales 3. sort(1) misbehaves for huge data intermittently (PHCO_17799:) 1. sort -k1 option fails for ascii characters whose value is > 127. (PHCO_15833:) 1. sort(1) reports errors while sorting binary data. sort(1) will not support binary data after 10.20. (PHCO_13500:) 1. UTF8 changes incorporated for various options for sort (PHCO_10589:) 1. sort(1) behaves incorrectly when the field_end for a sort key is not specified (PHCO_8768:) 1. Customer uses command "sort -t "|" " on HP-UX 10.01. He gets an error message: "A line of the input file contains more than 20480 characters." This error does only occur if LANG is set to de_DE.iso88591, with LANG="C" everything works fine. Defect Description: PHCO_28515: 1. Repackaging of 10.20 patch PHCO_27564 to 10.26 (TOS) (PHCO_27564:) 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 occurred 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 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 occurred only in case of multibyte locales. Resolution: The sort(1) code has been modified to return NULL on encountering EOF. SR: 8606259335 8606202868 8606215245 8606225452 4701427807 8606100923 8606101619 5003448423 1653260414 4701377283 1653184259 1653182055 4701349837 8606275377 Patch Files: /usr/bin/sort what(1) Output: /usr/bin/sort: $Revision: 78.5.1.19 $ PATCH_10_20: sort.o hpux_rel.o 02/11/19 PATCH-PHCO_20441 for 10.20; for 10.30, 11.x compatib ility libc.a_ID@@/main/r10dav/libc_dav/libc_ dav_cpe/9 /ux/core/libs/libc/archive_pa1/libc.a_ID Nov 10 1999 10:43:44 cksum(1) Output: 2875284400 245760 /usr/bin/sort Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: None Equivalent Patches: PHCO_27564: s700: 10.20 s800: 10.20 Patch Package Size: 290 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_28515 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHCO_28515.depot By default swinstall will archive the original software in /var/adm/sw/patch/PHCO_28515. 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_28515.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_28515.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None