Patch Name: PHCO_18576 Patch Description: s700_800 10.26 libc cumulative patch Creation Date: 99/06/25 Post Date: 99/06/28 Hardware Platforms - OS Releases: s700: 10.26 s800: 10.26 Products: N/A Filesets: BLS.BLS-ENG-A-MAN OS-Core.C-MIN OS-Core.CORE-SHLIBS ProgSupport.PROG-MIN ProgSupport.PROG-AUX Automatic Reboot?: No Status: General Superseded Critical: No Path Name: /hp-ux_patches/s700_800/10.X/PHCO_18576 Symptoms: PHCO_18576: No putgrent() function in libc for group file PHCO_17823: Some date related functions are not Year 2000 ready. (equivalent of 10.20 patch PHCO_16303) Defect Description: PHCO_18576: There is no putgrent() function in libc for group file that is an equivalent of the putpwent() for the password file. Resolution: putgrent() function created in C library. Argument is group structure and stream to write to, and it returns 0 if there is no error, and int other than 0 otherwise: int putgrent(const struct group *grp, FILE *f); PHCO_17823: mktime() does not seem to adjust for change in TZ variable. mktime(3C) sets tm_isdst to 0 when daylight savings is in effect for dates past Tuesday January 19 03:14:07 UTC 2038. Since strptime(3C) obtains this value from mktime(), it also returns the 0 for tm_isdst when daylight savings is in effect for those dates. strptime() does not check for dates not within the supported range of Friday December 13 20:45:52 UTC 1901 and Friday December 31 23:59:59 UTC 9999. (1) strptime(3C) does not support dates beyond January 19 UTC 2038 in 32-bit HP-UX. (2) strptime() does not fill in tm_wday, tm_mon and tm_mday when supplied both the year and day of the year. (3) strptime() does not treat invalid input dates and inconsistent input as errors. (4) strptime() does not handle %E correctly in the C locale. (5) strptime() returns incorrect value for tm_yday and tm_wday if tm_sec and/or tm_min are initialized to -1 when the %j conversion specification is used. strptime() treats Feb 29 2000 and March 1 2000 as the same day if the %A (or %a) and %U conversion specifications are used. (1) strptime(3C) does not support dates beyond January 19 UTC 2038 in 32-bit HP-UX. (2) strptime() does not fill in tm_wday, tm_mon and tm_mday when supplied both the year and day of the year. (3) strptime() does not treat invalid input dates and inconsistent input as errors. (4) strptime() does not handle %E correctly in the C locale. The getdate() function does not parse the template file correctly when the %r field descriptor is used in at least one of the templates. This leads to the situation that a non-zero value for getdate_err is returned even when the template file contains a matching template. In addition, getdate() does not correctly handle the case where %I is used in a template but %p is not. strptime(3C) does not calculate the week number correctly when the first day of the year is a Sunday (for %U and %W) or a Monday(for %W). The strptime and getdate calls did not handle two digit year specifications in the same manner. This has been addressed by providing strptime and getdate with an alternative behavior for dealing with two digit year specifications. In order to obtain the alternative behavior, which interprets two-digit year values in the range 66-99 to refer to the twentieth century and values in the range 00-68 to refer to the twenty-first century, the executable must link with the supplied object file, /usr/lib/year2000.o. Existing executables will continue to get the compatible behavior. The getdate() routine fails with a signal 11 segmentation violation when accessing a datemask file that contains a very large number of alternative date formats. Resolution: Merge in updated HP-UX 10.20 source code. SR: 0000000000 Patch Files: /usr/lib/libc.a /usr/lib/libc.1 /usr/lib/libpicc.a /usr/lib/libp/libc.a /usr/share/man/man3.Z/putgrent.3c /usr/lib/year2000.o what(1) Output: /usr/lib/libc.a: ic5ae_DAV17 lib/libc/archive_pa1/libc.a_01 Jun 23 1999 21:17:17 99/06/23 lib/libc/core/gen/ctime.c, hpux, hpux_10.26 , ic5cr Revision 1.2 PATCH_10.26 (PHCO_17823 ) UNMODIFIED 99/06/23 lib/libc/core/gen/ctime64.c, hpux, hpux_10. 26, ic5cr Revision 1.3 PATCH_10.26 (PHCO_178 23) 99/06/23 lib/libc/core/gen/mktime64.c, hpux, hpux_10 .26, ic5cr Revision 1.2 PATCH_10.26 (PHCO_17 823) 99/05/10 lib/libc/core/gen/putpwent.c, hpux, hpux_10 .26, ic5cr Revision 1.3 PATCH_10.26 (PHCO_18 576) 99/03/04 lib/libc/core/gen/getdate.c, hpux, hpux_10. 26, ic5cr Revision 1.3 PATCH_10.26 (PHCO_178 23) UNMODIFIED 99/06/23 lib/libc/core/gen/strptime.c, hpux, hpux_10 .26, ic5cr Revision 1.4 PATCH_10.26 (PHCO_17 823) 1999/06/23 Hewlett-Packard HP-UX 10.26 TOS [ ic5cr - DAV17 ] /usr/lib/libc.1: 99/06/23 lib/libc/core/gen/ctime.c, hpux, hpux_10.26 , ic5cr Revision 1.2 PATCH_10.26 (PHCO_17823 ) UNMODIFIED 99/06/23 lib/libc/core/gen/ctime64.c, hpux, hpux_10. 26, ic5cr Revision 1.3 PATCH_10.26 (PHCO_178 23) 99/06/23 lib/libc/core/gen/mktime64.c, hpux, hpux_10 .26, ic5cr Revision 1.2 PATCH_10.26 (PHCO_17 823) 99/05/10 lib/libc/core/gen/putpwent.c, hpux, hpux_10 .26, ic5cr Revision 1.3 PATCH_10.26 (PHCO_18 576) 99/03/04 lib/libc/core/gen/getdate.c, hpux, hpux_10. 26, ic5cr Revision 1.3 PATCH_10.26 (PHCO_178 23) UNMODIFIED 99/06/23 lib/libc/core/gen/strptime.c, hpux, hpux_10 .26, ic5cr Revision 1.4 PATCH_10.26 (PHCO_17 823) 1999/06/23 Hewlett-Packard HP-UX 10.26 TOS [ ic5cr - DAV17 ] ic5ae_DAV17 lib/libc/shared_pa1/libc.1_01 Jun 23 1999 21:48:23 /usr/lib/libpicc.a: ic5ae_DAV17 lib/libc/shared_pa1/libc.1_01 Jun 23 1999 21:48:23 99/06/23 lib/libc/core/gen/ctime.c, hpux, hpux_10.26 , ic5cr Revision 1.2 PATCH_10.26 (PHCO_17823 ) UNMODIFIED 99/06/23 lib/libc/core/gen/ctime64.c, hpux, hpux_10. 26, ic5cr Revision 1.3 PATCH_10.26 (PHCO_178 23) 99/06/23 lib/libc/core/gen/mktime64.c, hpux, hpux_10 .26, ic5cr Revision 1.2 PATCH_10.26 (PHCO_17 823) 99/05/10 lib/libc/core/gen/putpwent.c, hpux, hpux_10 .26, ic5cr Revision 1.3 PATCH_10.26 (PHCO_18 576) 99/03/04 lib/libc/core/gen/getdate.c, hpux, hpux_10. 26, ic5cr Revision 1.3 PATCH_10.26 (PHCO_178 23) UNMODIFIED 99/06/23 lib/libc/core/gen/strptime.c, hpux, hpux_10 .26, ic5cr Revision 1.4 PATCH_10.26 (PHCO_17 823) 1999/06/23 Hewlett-Packard HP-UX 10.26 TOS [ ic5cr - DAV17 ] /usr/lib/libp/libc.a: ic5ae_DAV17 lib/libc/profiled_pa1/libc.a_01 Jun 23 1999 22:14:00 99/06/23 lib/libc/core/gen/ctime.c, hpux, hpux_10.26 , ic5cr Revision 1.2 PATCH_10.26 (PHCO_17823 ) UNMODIFIED 99/06/23 lib/libc/core/gen/ctime64.c, hpux, hpux_10. 26, ic5cr Revision 1.3 PATCH_10.26 (PHCO_178 23) 99/06/23 lib/libc/core/gen/mktime64.c, hpux, hpux_10 .26, ic5cr Revision 1.2 PATCH_10.26 (PHCO_17 823) 99/05/10 lib/libc/core/gen/putpwent.c, hpux, hpux_10 .26, ic5cr Revision 1.3 PATCH_10.26 (PHCO_18 576) 99/03/04 lib/libc/core/gen/getdate.c, hpux, hpux_10. 26, ic5cr Revision 1.3 PATCH_10.26 (PHCO_178 23) UNMODIFIED 99/06/23 lib/libc/core/gen/strptime.c, hpux, hpux_10 .26, ic5cr Revision 1.4 PATCH_10.26 (PHCO_17 823) 1999/06/23 Hewlett-Packard HP-UX 10.26 TOS [ ic5cr - DAV17 ] /usr/share/man/man3.Z/putgrent.3c: None /usr/lib/year2000.o: 99/03/22 lib/libc/core/year2000/year2000.c, hpux, hp ux_10.26, ic5bn Revision 1.2 PATCH_10.26 (PH CO_17823) UNMODIFIED cksum(1) Output: 4013877467 2419060 /usr/lib/libc.a 501165307 1851392 /usr/lib/libc.1 2253685742 2604494 /usr/lib/libpicc.a 758940257 2608144 /usr/lib/libp/libc.a 1138435759 740 /usr/share/man/man3.Z/putgrent.3c 2606328815 940 /usr/lib/year2000.o Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHCO_17823 Equivalent Patches: None Patch Package Size: 9330 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_18576 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHCO_18576.depot 5b. For a homogeneous NFS Diskless cluster run swcluster on the server to install the patch on the server and the clients: swcluster -i -b This will invoke swcluster in the interactive mode and force all clients to be shut down. WARNING: All cluster clients must be shut down prior to the patch installation. Installing the patch while the clients are booted is unsupported and can lead to serious problems. The swcluster command will invoke an swinstall session in which you must specify: alternate root path - default is /export/shared_root/OS_700 source depot path - /tmp/PHCO_18576.depot To complete the installation, select the patch by choosing "Actions -> Match What Target Has" and then "Actions -> Install" from the Menubar. 5c. For a heterogeneous NFS Diskless cluster: - run swinstall on the server as in step 5a to install the patch on the cluster server. - run swcluster on the server as in step 5b to install the patch on the cluster clients. By default swinstall will archive the original software in /var/adm/sw/patch/PHCO_18576. 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_18576.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_18576.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: If libc patches are installed without rebooting, applications currently running which are linked shared against libc will still continue using the former version of libc. If this presents a problem to any applications, you should reboot.