Patch Name: PHKL_29696 Patch Description: s700_800 11.11 data page fault, use new STREAMS functions Creation Date: 03/10/15 Post Date: 03/10/27 Hardware Platforms - OS Releases: s700: 11.11 s800: 11.11 Products: N/A Filesets: OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP Automatic Reboot?: Yes Status: General Release Critical: No (superseded patches were critical) PHKL_24507: PANIC Category Tags: defect_repair general_release critical panic Path Name: /hp-ux_patches/s700_800/11.X/PHKL_29696 Symptoms: PHKL_29696: ( SR:8606317638 CR:JAGae80199 ) Adding support in pstat code for new location of STREAMS functions. PHKL_24047: ( SR:8606172689 CR:JAGad41949 ) The pstat_getpathname() call returns success, but no pathname is copied to the user buffer. ( SR:8606183483 CR:JAGad52696 ) pstat_getsocket() does not report TCP addresses for the telnetd daemon's open socket files. Because of this, PSTAT-based Lsof cannot report TCP addresses for telnetd's open socket files. PHKL_24507: ( SR:8606200293 CR:JAGad69477 ) Running lsof application causes panic on 11.11 when OTS driver is present. The following is the stack trace: panic+0x6c report_trap_or_int_and_panic+0x94 trap+0xf48 nokgdb+0x8 pstat_stream_driver_fillin+0x58 pstat_stream_fillin+0x428 pstat_stream+0x250 pstat+0x368 syscall+0x420 $syscallrtn+0x0 Defect Description: PHKL_29696: ( SR:8606317638 CR:JAGae80199 ) The STREAMS specific pstat code has moved into the STREAMS library. A set of STREAMS functions, used in the pstat code , have also been updated by STREAMS. Pstat code needs to be modified to call the STREAMS specific pstat functions from the new location and updated STREAMS functions when they are available. Resolution: The pstat code has been modified to call the STREAMS specific pstat functions from the new location and updated STREAMS functions when they are available. PHKL_24047: ( SR:8606172689 CR:JAGad41949 ) In the pstat_getpathname() call, "errno" is being used incorrectly. In particular, the value set in errno is being accidentally cleared before the system call returns. Hence, it appears that pstat_getpathname() succeeded even though it failed. Resolution: The pstat_getpathname() call has been fixed to prevent the accidental clearing of the errno variable. ( SR:8606183483 CR:JAGad52696 ) The problem is that the pstat_getsocket() call fails to return socket information for file descriptors 0, 1, and 2 of the telnetd daemon. These file descriptors are invalidated after linking with the telnet multiplexer, but they are not closed. Because they are not closed, they appear as open sockets but all transport calls fail with EINVAL. Resolution: The pstat_getsocket() call has been modified to take stream multiplexing into account. If a stream based socket is multiplexed, the pstat_getsocket() call now walks the stream modules to find out the TCP connection information for that open socket file. PHKL_24507: ( SR:8606200293 CR:JAGad69477 ) lsof application calls the pstat_getstream() system call to obtain stream module/driver information. pstat_getstream() call walks the streams modules and gets the information from the modules' write side queue. For OTS driver, the write side information is not initialized and has NULL pointers. pstat_getstream() did not check for NULL before dereferencing the pointer. Resolution: pstat_getstream() now tries to get the module/driver information from write side. But if the pointer is NULL or write side name is zero-length, then it gets the name from the read side. The routine now checks for NULL pointers in either case. Enhancement: No SR: 8606172689 8606183483 8606200293 8606317638 Patch Files: OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/libpstat.a(filedetails_pstat.o) /usr/conf/lib/libpstat.a(rpath_pstat.o) /usr/conf/lib/libpstat.a(socket_pstat.o) /usr/conf/lib/libpstat.a(stream_pstat.o) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/libpstat.a(filedetails_pstat.o) /usr/conf/lib/libpstat.a(rpath_pstat.o) /usr/conf/lib/libpstat.a(socket_pstat.o) /usr/conf/lib/libpstat.a(stream_pstat.o) what(1) Output: OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/libpstat.a(filedetails_pstat.o): filedetails_pstat.c $Date: 2001/05/01 13:47:10 $Revi sion: r11.11/1 PATCH_11.11 (PHKL_24047) /usr/conf/lib/libpstat.a(rpath_pstat.o): rpath_pstat.c $Date: 2001/05/01 13:47:10 $Revision: r11.11/1 PATCH_11.11 (PHKL_24047) /usr/conf/lib/libpstat.a(socket_pstat.o): socket_pstat.c $Date: 2003/10/01 16:40:24 $Revision: r11.11/2 PATCH_11.11 (PHKL_29696) /usr/conf/lib/libpstat.a(stream_pstat.o): stream_pstat.c $Date: 2003/10/01 16:38:23 $Revision: r11.11/2 PATCH_11.11 (PHKL_29696) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/libpstat.a(filedetails_pstat.o): filedetails_pstat.c $Date: 2001/05/01 13:47:10 $Revi sion: r11.11/1 PATCH_11.11 (PHKL_24047) /usr/conf/lib/libpstat.a(rpath_pstat.o): rpath_pstat.c $Date: 2001/05/01 13:47:10 $Revision: r11.11/1 PATCH_11.11 (PHKL_24047) /usr/conf/lib/libpstat.a(socket_pstat.o): socket_pstat.c $Date: 2003/10/01 16:40:24 $Revision: r11.11/2 PATCH_11.11 (PHKL_29696) /usr/conf/lib/libpstat.a(stream_pstat.o): stream_pstat.c $Date: 2003/10/01 16:38:23 $Revision: r11.11/2 PATCH_11.11 (PHKL_29696) cksum(1) Output: OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: 1151792673 8608 /usr/conf/lib/ libpstat.a(filedetails_pstat.o) 1661077800 7892 /usr/conf/lib/libpstat.a(rpath_pstat.o) 3907185003 12084 /usr/conf/lib/libpstat.a(socket_pstat.o) 916071201 7316 /usr/conf/lib/libpstat.a(stream_pstat.o) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: 140221102 19488 /usr/conf/lib/ libpstat.a(filedetails_pstat.o) 2760887544 17336 /usr/conf/lib/libpstat.a(rpath_pstat.o) 292770557 26728 /usr/conf/lib/libpstat.a(socket_pstat.o) 3936086430 15480 /usr/conf/lib/libpstat.a(stream_pstat.o) Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_24507 PHKL_24047 Equivalent Patches: None Patch Package Size: 80 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 PHKL_29696 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHKL_29696.depot By default swinstall will archive the original software in /var/adm/sw/save/PHKL_29696. 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 PHKL_29696.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHKL_29696.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_29696.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None