Patch Name: PHCO_26023 Patch Description: s700_800 10.20 find(1) cumulative patch Creation Date: 02/03/03 Post Date: 02/03/08 Hardware Platforms - OS Releases: s700: 10.20 s800: 10.20 Products: N/A Filesets: OS-Core.CMDS-MIN Automatic Reboot?: No Status: General Release Critical: No Path Name: /hp-ux_patches/s700_800/10.X/PHCO_26023 Symptoms: PHCO_26023: 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_15262: No visible symptoms. PHCO_13840: This patch is part of the 10.20 ACE 2 bundle which adds networking enhancements to 10.20. New networking features supported in ACE 2 include NFS Version 3.0, AutoFS, and CacheFS. PHCO_13549: Patch built with libraries incorporating UTF8 changes. PHCO_12011: find -user command hangs after 'setprivgrp -g LOCKRDONLY' command. Defect Description: PHCO_26023: 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 10.20 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.The code is modified to fix the problem. 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_15262: Remove fileset-level checkinstall script added for ONC+ Networking Enhancements bundle to avoid manufacturing conflicts. PHCO_13840: New functionality to support networking features in 10.20. PHCO_13549: Patch built with libraries incorporating UTF8 changes. PHCO_12011: "find -user" command hangs when tries to lock the files with setprivgrp command. SR: 8606186711 8606201448 8606157563 1653297309 8606106811 4701378117 4701377283 5003380253 Patch Files: /usr/bin/find what(1) Output: /usr/bin/find: $Revision: 78.8.2.8 $ PATCH_10_20: hpux_rel.o find.o funcs.o cpio.o libcpi o.o 02/03/03 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: 3657934593 368640 /usr/bin/find Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHCO_12011 PHCO_13549 PHCO_13840 PHCO_15262 Equivalent Patches: PHCO_25641: s700: 11.00 s800: 11.00 Patch Package Size: 420 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_26023 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHCO_26023.depot By default swinstall will archive the original software in /var/adm/sw/patch/PHCO_26023. 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_26023.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_26023.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None