From owner-cvs-all Sat Oct 10 12:30:58 1998 Return-Path: Received: (from daemon@localhost) by hub.freebsd.org (8.8.8/8.8.8) id MAA20000 for cvs-all-outgoing; Sat, 10 Oct 1998 12:30:58 -0700 (PDT) (envelope-from owner-cvs-all) Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id MAA19984; Sat, 10 Oct 1998 12:30:47 -0700 (PDT) (envelope-from bde@FreeBSD.org) From: Bruce Evans Received: (from bde@localhost) by freefall.freebsd.org (8.8.8/8.8.5) id MAA28329; Sat, 10 Oct 1998 12:30:45 -0700 (PDT) Date: Sat, 10 Oct 1998 12:30:45 -0700 (PDT) Message-Id: <199810101930.MAA28329@freefall.freebsd.org> To: cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG Subject: cvs commit: src/lib/libc/gen popen.c Sender: owner-cvs-all@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk bde 1998/10/10 12:30:45 PDT Modified files: lib/libc/gen popen.c Log: vfork -> fork. The child calls execl() which calls malloc(), so vfork() can't be used. We could use alloca() in execl() so that it can be called between vfork() and execve(), but a "portable" popen() shouldn't depend on this. Calling execle() instead of execl() should be fairly safe, since execle() is supposed to be callable from signal handlers and signal handlers can't call malloc(). However, execle() is broken. Revision Changes Path 1.10 +1 -1 src/lib/libc/gen/popen.c