Patch Name: PHCO_17823 Patch Description: s700_800 10.26 libc patch for y2k Creation Date: 99/03/23 Post Date: 99/04/21 Hardware Platforms - OS Releases: s700: 10.26 s800: 10.26 Products: N/A Filesets: 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_17823 Symptoms: PHCO_17823: libc is not Y2K ready. Defect Description: 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/lib/year2000.o what(1) Output: /usr/lib/libc.a: ic5ae_DAV17 lib/libc/archive_pa1/libc.a_01 Mar 22 1999 21:35:10 99/03/22 lib/libc/core/gen/ctime.c, hpux, hpux_10.26 , ic5bn Revision 1.2 PATCH_10.26 (PHCO_17823 ) UNMODIFIED 99/03/22 lib/libc/core/gen/ctime64.c, hpux, hpux_10. 26, ic5bn Revision 1.3 PATCH_10.26 (PHCO_178 23) 99/03/22 lib/libc/core/gen/mktime64.c, hpux, hpux_10 .26, ic5bn Revision 1.2 PATCH_10.26 (PHCO_17 823) 99/03/04 lib/libc/core/gen/getdate.c, hpux, hpux_10. 26, ic5bn Revision 1.3 PATCH_10.26 (PHCO_178 23) UNMODIFIED 99/03/22 lib/libc/core/gen/strptime.c, hpux, hpux_10 .26, ic5bn Revision 1.4 PATCH_10.26 (PHCO_17 823) 1999/03/22 Hewlett-Packard HP-UX 10.26 TOS [ ic5bn - DAV17 ] /usr/lib/libc.1: 99/03/22 lib/libc/core/gen/ctime.c, hpux, hpux_10.26 , ic5bn Revision 1.2 PATCH_10.26 (PHCO_17823 ) UNMODIFIED 99/03/22 lib/libc/core/gen/ctime64.c, hpux, hpux_10. 26, ic5bn Revision 1.3 PATCH_10.26 (PHCO_178 23) 99/03/22 lib/libc/core/gen/mktime64.c, hpux, hpux_10 .26, ic5bn Revision 1.2 PATCH_10.26 (PHCO_17 823) 99/03/04 lib/libc/core/gen/getdate.c, hpux, hpux_10. 26, ic5bn Revision 1.3 PATCH_10.26 (PHCO_178 23) UNMODIFIED 99/03/22 lib/libc/core/gen/strptime.c, hpux, hpux_10 .26, ic5bn Revision 1.4 PATCH_10.26 (PHCO_17 823) 1999/03/22 Hewlett-Packard HP-UX 10.26 TOS [ ic5bn - DAV17 ] ic5ae_DAV17 lib/libc/shared_pa1/libc.1_01 Mar 22 1999 22:06:59 /usr/lib/libpicc.a: ic5ae_DAV17 lib/libc/shared_pa1/libc.1_01 Mar 22 1999 22:06:59 99/03/22 lib/libc/core/gen/ctime.c, hpux, hpux_10.26 , ic5bn Revision 1.2 PATCH_10.26 (PHCO_17823 ) UNMODIFIED 99/03/22 lib/libc/core/gen/ctime64.c, hpux, hpux_10. 26, ic5bn Revision 1.3 PATCH_10.26 (PHCO_178 23) 99/03/22 lib/libc/core/gen/mktime64.c, hpux, hpux_10 .26, ic5bn Revision 1.2 PATCH_10.26 (PHCO_17 823) 99/03/04 lib/libc/core/gen/getdate.c, hpux, hpux_10. 26, ic5bn Revision 1.3 PATCH_10.26 (PHCO_178 23) UNMODIFIED 99/03/22 lib/libc/core/gen/strptime.c, hpux, hpux_10 .26, ic5bn Revision 1.4 PATCH_10.26 (PHCO_17 823) 1999/03/22 Hewlett-Packard HP-UX 10.26 TOS [ ic5bn - DAV17 ] /usr/lib/libp/libc.a: ic5ae_DAV17 lib/libc/profiled_pa1/libc.a_01 Mar 22 1999 22:32:51 99/03/22 lib/libc/core/gen/ctime.c, hpux, hpux_10.26 , ic5bn Revision 1.2 PATCH_10.26 (PHCO_17823 ) UNMODIFIED 99/03/22 lib/libc/core/gen/ctime64.c, hpux, hpux_10. 26, ic5bn Revision 1.3 PATCH_10.26 (PHCO_178 23) 99/03/22 lib/libc/core/gen/mktime64.c, hpux, hpux_10 .26, ic5bn Revision 1.2 PATCH_10.26 (PHCO_17 823) 99/03/04 lib/libc/core/gen/getdate.c, hpux, hpux_10. 26, ic5bn Revision 1.3 PATCH_10.26 (PHCO_178 23) UNMODIFIED 99/03/22 lib/libc/core/gen/strptime.c, hpux, hpux_10 .26, ic5bn Revision 1.4 PATCH_10.26 (PHCO_17 823) 1999/03/22 Hewlett-Packard HP-UX 10.26 TOS [ ic5bn - DAV17 ] /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: 895339128 2417268 /usr/lib/libc.a 3321890101 1851392 /usr/lib/libc.1 683384218 2602526 /usr/lib/libpicc.a 2757625596 2606092 /usr/lib/libp/libc.a 2606328815 940 /usr/lib/year2000.o Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: None Equivalent Patches: PHCO_16303: s700: 10.20 s800: 10.20 Patch Package Size: 9310 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_17823 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHCO_17823.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_17823.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_17823. 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_17823.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_17823.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None