Patch-ID# 101825-03 Keywords: TLI alignment memory system crashes trap Synopsis: SunOS 4.1.3_U1: TLI Patch Date: Mar/29/96 Solaris Release: 1.1.1 SunOS Release: 4.1.3_U1 Unbundled Product: Unbundled Release: Relevant Architectures: sparc BugId's fixed with this patch: 1091548 1148146 1148365 1111395 1208046 Changes incorporated in this version: 1208046 Patches accumulated and obsoleted by this patch: Patches which conflict with this patch: Patches required with this patch: Obsoleted by: Files included with this patch: README tcp_tli.o Problem Description: 1208046: Patch 101825-02 crashes system with memory alignment error. The fix in 101825-02 for bug#1148146 assumed that b_rptr of a mblk is always word aligned when casting for T_primitives type. The new fix checks for M_PROTO/M_PCPROTO messages before doing the type-casting. 1091548: When an interative server (the host calling t_listen() with the same descriptor for each new connection) issues a t_sndis() on an established TCP connection, the connection is broken down, and the listening endpoint is expected to be reuseable by a subsequent t_listen() using the same file descriptor. Instead, t_listen() ignores subsequent connection requests. 1148146: while a TLI client is doing a t_getstate, the process will submit a job to TLI subsystem and sleeps in strdoioctl. This job is queued on the TLI service queue. If at this time, a disconnect request comes from the server, this t_getstate request will be flushed away from the jobqueue. Hence, the sleeping process will never be awakened. 1148365: Under SunOS, an mbuf leaking problem exists when running a TLI application. This causes the system to hang after a period of time. 1111395: Applications hang if printf() instead of write() is used via listen/nlsadmin. The problem is TLI subsystem does not handle certain IOCTL calls. It simply ignores them without generating a reply. Patch Installation Instructions: 1) As root, make a backup of the original tcp_tli.o: # mv /usr/sys/`arch -k`/OBJ/tcp_tli.o /usr/sys/`arch -k`/OBJ/tcp_tli.o.FCS 2) Copy the appropriate tcp_tli.o to the OBJ directory: # cp `arch -k`/tcp_tli.o /usr/sys/`arch -k`/OBJ/tcp_tli.o 3) Config, make, and install a new kernel. Reboot the system. Please refer to the System and Networking Administration manual for details on building and installing a new kernel.