Commit Graph

28 Commits

Author SHA1 Message Date
cl 64408794ea make popen/pclose thread safe 2003-09-15 22:30:38 +00:00
agc eb7c1594f1 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22280, verified by myself.
2003-08-07 16:42:00 +00:00
nathanw f60f35f3ab Don't acquire __environ_lock around exec*() calls; nothing requires
that these calls be thread-safe with respect to the environment, and it
causes serious problems for threaded applications which call vfork() and
exec*() (including indirectly, via popen() or system()).

Acquire and release __environ_lock in the parent in popen() and system() to
play safe and provide the child with a stable environment.

__environ_lock should also have an atfork() handler; still under development.
2003-03-04 19:44:09 +00:00
mycroft 605490369c Delint.
Remove trailing ; from uses of __weak_alias().  The macro inserts this if
needed.
2000-01-22 22:19:07 +00:00
lukem d896261208 back out the #ifdef _DIAGNOSTIC argument checks; too many people complained.
_DIAGASSERT() is still retained.
1999-09-20 04:38:56 +00:00
lukem b48252f365 * use _DIAGASSERT() to check pointer arguments against NULL and file
descriptors against -1 (as appropriate).
* add actual checks which to detect stuff that would trigger_DIAGASSERT(),
  and attempt to return a sane error condition.
* knf some code
* remove some `register' decls.

the first two items result in the addition of code similar to the
following in various functions:

		_DIAGASSERT(path != NULL)
	#ifdef _DIAGNOSTIC
		if (path == NULL) {
			errno = EFAULT;
			return (-1);
		}
	#endif
1999-09-16 11:44:54 +00:00
lukem 786b86d71b use AF_LOCAL instead of AF_UNIX 1998-07-18 05:04:35 +00:00
tv f4de506a31 PR 3673: possible to close the wrong fds 1998-03-19 18:21:25 +00:00
tron 3a57b77a87 Fix a severe bug in popen() which only showed up with NetBSD's true
vfork() implementation and close a possible file descriptor leak.
1998-02-04 00:03:54 +00:00
perry 4146d58604 remove obsolete register declarations 1998-02-03 18:23:37 +00:00
perry 677ae55ec2 force twoway and type out of registers in order to shut up a gcc
warning. What a crock!
1998-02-03 01:16:03 +00:00
perry 90320e4c2a fix typo from lite-2 commit 1998-02-02 02:54:28 +00:00
perry 08b0946f73 merge/update to lite-2 1998-02-02 02:41:17 +00:00
thorpej 4ccbd4b430 Make this safe in environments that have a Real vfork(2). Bug pointed
out by Chuck Cranor <chuck@netbsd.org>
1997-09-16 00:35:47 +00:00
jtc 43fa6fe319 If port provides __weak_alias(), provide an Standard C and POSIX pure
identifier namespace by renaming non standard functions and variables
such that they have a leading underscore.  The library will use those
names internally.  Weak aliases are used to provide the original names
to the API.

This is only the first part of this change.  It is most of the functions
which are implemented in C for all NetBSD ports.  Subsequent changes are
to add the same support to the remaining C files, to assembly files, and
to the automagically generated assembly source used for system calls.
When all of the above is done, ports with weak alias support should add
a definition for __weak_alias to <sys/cdefs.h>.
1997-07-21 14:06:24 +00:00
christos db55960be8 Fix clobbered variable warning
Fix RCSID's
1997-07-13 19:16:07 +00:00
jtc b021f209c3 Changed to conform to POSIX.2 B.3.2.2 "popen() shall ensure that any streams
from previous popen() calls that remain open in the parent process are closed
in the new child process."  Fixes PR #2575.
1996-06-29 00:51:49 +00:00
jtc 915b76dd9f Don't cast void functions to void. 1995-06-16 07:05:27 +00:00
cgd 2c4d3c4c4a clean up Id's on files previously imported... 1995-02-25 08:50:56 +00:00
jtc 3cb178ff70 merge in our POSIX.2 changes (again) 1994-05-09 16:28:27 +00:00
cgd eb985c6d35 clean up conflicts 1994-05-07 03:03:09 +00:00
jtc e8ed9b3ab8 merge our changes into 4.4lite 1994-05-06 18:44:23 +00:00
jtc a054c6582a First pass at getting a clean compile with "gcc -Wall", mostly explictly
declaring function return values, etc.
1993-11-11 19:04:04 +00:00
jtc 9c20f740a3 Declare rcsid strings so they are stored in text segment. 1993-08-26 00:43:03 +00:00
jtc 19e4e33b98 Don't block SIGINT, SIGQUIT, SIGHUP, etc. in pclose()...
"Some historical implementations either block or ignore the signals
    SIGINT, SIGQUIT, and SIGHUP while waiting for the child process to
    terminate.  Since this behavior is not described in POSIX.2, such
    implementations are not conforming."
1993-08-23 21:56:31 +00:00
jtc ffefbf8e83 If mode is niether 'r' or 'w', set errno to EINVAL as per 1003.2-92. 1993-08-21 00:11:47 +00:00
mycroft f23f94cb77 Add even more RCS frobs. 1993-07-30 08:21:41 +00:00
cgd 61f282557f initial import of 386bsd-0.1 sources 1993-03-21 09:45:37 +00:00