Patch Name: PHCO_25641 Patch Description: s700_800 11.00 cumulative find(1) patch Creation Date: 01/12/16 Post Date: 02/01/02 Hardware Platforms - OS Releases: s700: 11.00 s800: 11.00 Products: N/A Filesets: OS-Core.CMDS-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP OS-Core.CMIN-ENG-A-MAN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP Automatic Reboot?: No Status: General Release Critical: No Category Tags: defect_repair enhancement general_release Path Name: /hp-ux_patches/s700_800/11.X/PHCO_25641 Symptoms: PHCO_25641: 1."find -group +" will display files with group id matching "n" instead of displaying files with group id >n. 2. On a cdfs file system, "find /cdrom ( -nouser -o -nogroup )" causes bus error. 3. XPG4 tests for assertions #50,#51 of VSC5.1.2 test suites fail for find(1). 4."find sym_file -cpio " will create an invalid cpio archive, if size of sym_file is odd. 5."find -ncpio " will create an invalid ncpio archive, if directory contains symbolic links of odd size. PHCO_20575: Enhancements to find(1) to function with JFS ACLs. PHCO_20037: Enhancements to find(1) to function with JFS ACLs. Defect Description: PHCO_25641: 1.When find(1) is used to search for files whose group id is greater than a particular group id say n, it does not display all files having group id greater than n. for example: on a 11.0 machine, $ ls -l test -rw-rw-r-- 1 test1 users1 10 May 20 2001 foo1 -rw-rw-r-- 1 test1 users2 10 May 20 2001 foo2 -rw-rw-r-- 1 test1 users3 10 May 20 2001 foo3 (where group id's of users1, users2, users3 are 20, 21, 22 respectively) $find test -group +20 -rw-rw-r-- 1 test1 users1 10 May 20 2001 foo1 This is wrong. Instead it should display -rw-rw-r-- 1 test1 users2 10 May 20 2001 foo2 -rw-rw-r-- 1 test1 users3 10 May 20 2001 foo3 Resolution : find(1) command was not processing the group id argument correctly. It used to ignore the "+/-" sign associated with the "-group" argument. Now, the command is modified to process the "+/-" sign of "-group" option as per the man page description. 2.When find(1) is used to search for files belonging to an unlisted user or group under a cdfs file system,bus error is generated. For example: $ mount /dev/dsk/c0t1d0 /SD_CDROM (mount the CDROM in the drive) # find /SD_CDROM \( -nouser -o -nogroup \) >>/dev/null Bus Error # find /SD_CDROM -nouser -fstype cdfs Bus error # find /SD_CDROM -nouser -fstype hfs Bus error Resolution: For a CD, -1 is returned by cdfs if no UID/GIDS are stored on it. This ID(-1) is used for key values of the hash tables used in find(1). The hash functions used in find(1) were not handling the negative numbers properly resulting in out of range values causing bus errors. The find(1) command is modified to take care of negative Id's. The data types used internally are modified to ensure key values never go negative. 3.Assertion #50 and #51 of XPG4 states that "if a filename begins with a period (.),the period should be matched by * or ?". Resolution: There is a change in the test suites for Assertions #50 and #51 of find(1) command from VSC4.1.6 to VSC5.1.2.The interpretations in the test suites prior to VSC5.1.1 were wrong. That has been rectified in VSC5.1.1 onwards. 4.When find(1) is used to create an archive file using -cpio option ,it writes corrupt entries for odd size symbolic links, which can not be recovered from the archive. For example: $ touch badlink $ ln -s badlink link $ ll link lrwx------ 1 umasankr users 7 Dec 14 19:07 link -> badlink $ find link -cpio find.out $ cpio -Rivt < find.out cpio : Out of phase;resyncing. End of volume err no: 25,can't read input. $ Resolution: For symbolic links of odd size, the magic number will start from odd location which causes cpio to fail while finding the magic number of the file.Code is modified to get the next even number for odd size symbolic links. 5.When find(1) is used to create an archive file using -ncpio option ,it writes corrupt entries for odd size symbolic link which are not recoverable. For example: $ mkdir d $ mkdir d/d1 $ mkdir d/d2 $ cd d/d2 $ ln -s ../d1 l $ cd ../../ $ find d -ncpio d.ncpio $ cpio -icvt < d.ncpio 40777 vts 0 Dec 13 04:28:54 2001 d/d1 120777 vts 5 Dec 13 04:29:17 2001 d/d2/l Out of phase--get help You may want to use "R" option $ Resolution: Incase of -ncpio option, If the symbolic link is of odd size, the size is getting incremented to nearst even number, which is causing the problem. Now the code is changed, not to increment the size, in case of -ncpio option. PHCO_20575: This patch fixes a problem in the patch removal scripts in order to prevent removal of JFS ACL enhancements to find(1) while JFS 3.3 is installed on the system. PHCO_20037: Enhancements to find(1) to function with JFS ACLs. SR: 8606186711 8606201448 8606157563 1653297309 8606106811 8606107368 5003311746 1653249284 Patch Files: OS-Core.CMDS-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: /usr/lib/nls/msg/C/find.cat /usr/bin/find OS-Core.CMIN-ENG-A-MAN,fr=B.11.00,fa=HP-UX_B.11.00_32/64, v=HP: /usr/share/man/man1.Z/find.1 what(1) Output: OS-Core.CMDS-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: /usr/lib/nls/msg/C/find.cat: None OS-Core.CMDS-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: /usr/bin/find: $Revision: 82.3.5.2 $ PATCH_11_00: hpux_rel.o find.o funcs.o cpio.o aclv_p att.o libcpio.o 01/12/16 OS-Core.CMIN-ENG-A-MAN,fr=B.11.00,fa=HP-UX_B.11.00_32/64, v=HP: /usr/share/man/man1.Z/find.1: None cksum(1) Output: OS-Core.CMDS-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: 1607046871 2173 /usr/lib/nls/msg/C/find.cat OS-Core.CMDS-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: 445145664 61440 /usr/bin/find OS-Core.CMIN-ENG-A-MAN,fr=B.11.00,fa=HP-UX_B.11.00_32/64, v=HP: 3310937027 10397 /usr/share/man/man1.Z/find.1 Patch Conflicts: None Patch Dependencies: s700: 11.00: PHCO_19491 PHKL_19991 s800: 11.00: PHCO_19491 PHKL_19991 Hardware Dependencies: None Other Dependencies: None Supersedes: PHCO_20037 PHCO_20575 Equivalent Patches: None 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_25641 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHCO_25641.depot By default swinstall will archive the original software in /var/adm/sw/save/PHCO_25641. 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_25641.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHCO_25641.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHCO_25641.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None