Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!brl-adm!brl-sem!dpk From: dpk@brl-sem.ARPA (Doug Kingston ) Newsgroups: comp.bugs.4bsd Subject: Interrupting signals not reset on exec (FIX) Message-ID: <470@brl-sem.ARPA> Date: Wed, 12-Nov-86 15:47:28 EST Article-I.D.: brl-sem.470 Posted: Wed Nov 12 15:47:28 1986 Date-Received: Wed, 12-Nov-86 22:10:56 EST Organization: Ballistic Research Lab (BRL), APG, MD. Lines: 29 Keywords: 4.3BSD signals bug Index: sys/sys/kern_exec.c 4.3BSD FIX Description: In 4.3BSD, the ability to interrupt systemcalls is controlled on a per-signal basis through the user structure entry u.u_sigintr. Unfortunately, the bit is never reset. Repeat-By: Run one of Doug Gwyn's system V shells compiled for 4.3BSD and watch the behavior of signals on editors or other other programs that have reads which should not be interrupted by signals. Fix: In kern_exec.c, apply the following diff. This will reset the sigintr behavior when it resets all the other signal parameters for the new process image. *** /tmp/,RCSt1009882 Wed Nov 12 15:38:33 1986 --- kern_exec.c Wed Oct 29 22:42:08 1986 *************** *** 343,348 **** --- 343,349 ---- u.u_onstack = 0; u.u_sigsp = 0; u.u_sigonstack = 0; + u.u_sigintr = 0; for (nc = u.u_lastfile; nc >= 0; --nc) { if (u.u_pofile[nc] & UF_EXCLOSE) {