Commit Graph

3309 Commits

Author SHA1 Message Date
deischen
26557ed56e Change signal handling to conform to POSIX specified semantics.
Before this change, a signal was delivered to each thread that
didn't have the signal masked.  Signals also improperly woke up
threads waiting on I/O.  With this change, signals are now
handled in the following way:

  o If a thread is waiting in a sigwait for the signal,
    then the thread is woken up.

  o If no threads are sigwait'ing on the signal and a
    thread is in a sigsuspend waiting for the signal,
    then the thread is woken up.

  o In the case that no threads are waiting or suspended
    on the signal, then the signal is delivered to the
    first thread we find that has the signal unmasked.

  o If no threads are waiting or suspended on the signal,
    and no threads have the signal unmasked, then the signal
    is added to the process wide pending signal set.  The
    signal will be delivered to the first thread that unmasks
    the signal.

If there is an installed signal handler, it is only invoked
if the chosen thread was not in a sigwait.

In the case that multiple threads are waiting or suspended
on a signal, or multiple threads have the signal unmasked,
we wake up/deliver the signal to the first thread we find.
The above rules still apply.

Reported by:	Scott Hess <scott@avantgo.com>
Reviewed by:	jb, jasone
1999-12-04 22:55:59 +00:00
green
2485a6fe62 Add RLIMIT_SBSIZE here, too. 1999-12-03 23:25:14 +00:00
archie
e66a1ece64 Missed part of previous commit. 1999-12-03 23:15:33 +00:00
archie
111c3db9ac Recognize NGM_BPF_COOKIE. 1999-12-03 23:12:41 +00:00
sheldonh
419e022a57 Replace the -q option to pwd_mkdb with a test for PW_SCAN_BIG_IDS in
the environment.  This allows big ID warnings to be suppressed for
vipw and chpass as well.

Since the environment variable test is only performed for callers
of pw_scan() that do not set pw_big_ids_warning, the test can still
be overriden.  Currently, chpass and pwd_mkdb are the only users
of pw_scan() and neither of them overrides the environment variable
test.
1999-12-02 16:39:15 +00:00
green
a6fb49cc4c Separate some common sysctl code into sysctl_find_oid() and calling
thereof.  Also, make the errno returns  _correct_, and add a new one
which is more appropriate.
1999-12-01 02:25:19 +00:00
ache
5e217e6385 %Ex -> %Ef to not conflict with POSIX
Add %EF (long months name / day order)
Check that O and E not intermixed
Add missing POSIX extension to example
1999-11-30 19:24:07 +00:00
ache
544361cf80 Document %Ex and %OB 1999-11-30 18:37:36 +00:00
ache
3862f6435c Stricter checking %A vs %a 1999-11-30 08:11:13 +00:00
ache
e498e4247a Fix %C handling
Use locale for %c
Add %+
Add %Ex and %OB
1999-11-30 08:05:09 +00:00
ache
0f22f32fa2 Add %Ex extension to determine "%e %b" or "%b %e" order
Separate alternative for O and E cases
1999-11-30 07:33:37 +00:00
peter
1fb098fb07 Turn libbind back on, it should be ok now. 1999-11-30 06:13:10 +00:00
peter
b9203024c5 EEK! termios mode wasn't activated..
Noticed by:	Christian Weisgerber <naddy@mips.rhein-neckar.de>
1999-11-30 05:56:12 +00:00
peter
c66152adda Build more components to get named to build. 1999-11-30 04:40:54 +00:00
peter
b2465e96fe oops, forgot to disconnect libbind while it's broken. 1999-11-30 04:22:25 +00:00
peter
8cefbe8541 Update for Bind 8.2.2.p5 1999-11-30 04:20:05 +00:00
archie
f95f4dac4c Add two new generic control messages, NGM_ASCII2BINARY and
NGM_BINARY2ASCII, which convert control messages to ASCII and back.
This allows control messages to be sent and received in ASCII form
using ngctl(8), which makes ngctl a lot more useful.

This also allows all the type-specific debugging code in libnetgraph
to go away -- instead, we just ask the node itself to do the ASCII
translation for us.

Currently, all generic control messages are supported, as well as
messages associated with the following node types: async, cisco,
ksocket, and ppp.

See /usr/share/examples/netgraph/ngctl for an example of using this.

Also give ngctl(8) the ability to print out incoming data and
control messages at any time.  Eventually nghook(8) may be subsumed.

Several other misc. bug fixes.

Reviewed by:	julian
1999-11-30 02:45:32 +00:00
phk
9a574b3030 Report swapdevices as cdevs rather than bdevs.
Remove unused dev2budev() function.
1999-11-29 21:37:18 +00:00
alfred
c95117807f style fixes, remove extra braces.
readdir_r is not POSIX according to POSIX_SOURCE, bruce says:
> readdir_r() is in the _POSIX_SOURCE section, but is not a POSIX.1-1990
> function.  It's POSIX.1-1996 so it should be under a different feature
> test which we don't support yet.

make sure errno is saved so that its contents are cleared unless
necessary.

Submitted by: bde
1999-11-29 19:12:50 +00:00
green
8914ab4a62 Add the PAM SSH RSA key authentication module. For example, you can add,
"login  auth    sufficient      pam_ssh.so" to your /etc/pam.conf, and
users with a ~/.ssh/identity can login(1) with their SSH key :)

PR:		15158
Submitted by:	Andrew J. Korty <ajk@waterspout.com>
Reviewed by:	obrien
1999-11-29 07:09:44 +00:00
wes
7f5103303d Provide a man page for Alfreds lovely readdir_r function. Also
fixed a minor indentation nit and added a few {}s to make readdir_r
easier on old eyes.
1999-11-29 06:12:22 +00:00
wes
679e866bb8 Provide and document ctermid_r function. 1999-11-28 23:28:49 +00:00
wes
a710bd56ea Document the getlogin_r function. 1999-11-28 22:41:50 +00:00
wes
1325d93a15 Provide the getlogin_r function. 1999-11-28 22:41:38 +00:00
dfr
d716fb3a5a * Fix the stack allocation code so that it works for alpha. Change it
to use mmap(..., MAP_STACK, ...) on alpha too since that should work
  now.
* Add hooks to allow GDB to access the internals of pthreads without
  having to know the exact layout of struct pthread.

Reviewed by: deischen
1999-11-28 19:47:43 +00:00
alfred
675c478c19 add pthread_cancel, obtained from OpenBSD.
eischen (Daniel Eischen) added wrappers to protect against cancled
threads orphaning internal resources.

the cancelability code is still a bit fuzzy but works for test
programs of my own, OpenBSD's and some examples from ORA's books.

add readdir_r to both libc and libc_r

add some 'const' attributes to function parameters

Reviewed by: eischen, jasone
1999-11-28 05:38:13 +00:00
msmith
027e862956 Remove 'sd' support. SCSI disks are known as 'da' these days. 1999-11-27 21:20:57 +00:00
phk
fac9222e39 Remove BAD144 support 1999-11-27 14:33:30 +00:00
peter
c998f301bb To avoid confusion, zap libtermcap. ncurses provides both curses, termcap
and termlib (terminfo) support.
1999-11-26 09:33:02 +00:00
peter
c183d41d71 To avoid confusion, zap libcurses. ncurses provides both curses, termcap
and termlib (terminfo) support.
1999-11-26 09:28:33 +00:00
phk
4fa210063d General clean-up of socket.h and associated sources to synchronise up
with NetBSD and the Single Unix Specification v2.

This updates some structures with other, almost equivalent types and
effort is under way to get the whole more consistent.

Also removes a double definition of INET6 and some other clean-ups.

Reviewed by: green, bde, phk
Some part obtained from: NetBSD, SUSv2 specification
1999-11-24 20:49:04 +00:00
peter
5f1148597c longjumperror() and abort() don't exist in libstand.. Don't test
for a condition we can't handle (like the x86 longjmp).  This was
highlighted by attempting to build FICL into the alpha loader.
1999-11-24 13:54:46 +00:00
peter
4af59a5cb8 Ensure libmytinfo stays dead.. I originally left it here so that we might
be able to build the old shared versions rather than taking a binary for
the compat area, but that seems to have caused confusion.
1999-11-24 12:34:28 +00:00
eivind
4ba95bba41 Allow empty UIDs if we are processing NIS records. I am not entirely
happy with how this end up and will re-visit the entire empty field
problem, but this patch solves the NIS problem for now.

Submitted by:	Dan Nelson <dan@emsphone.com>
PR:	14865,14984
1999-11-22 12:42:38 +00:00
dt
7223028a95 Make __sfp() even more thread-safe. 1999-11-21 22:34:57 +00:00
dt
a7384847f3 Add (FILE *) locking. 1999-11-20 14:52:03 +00:00
dt
f9b921b5dc Make __sfp() (FILE allocator) thread-safe: added locking like in malloc(). 1999-11-20 14:01:48 +00:00
obrien
5784932e27 Fix HISTORY - the copyright header on the file of the GCC version was
misleading.

Submitted by:	Theo de Raadt <deraadt@cvs.openbsd.org>
1999-11-20 00:15:17 +00:00
obrien
d599d4597c Add to the HISTORY. 1999-11-19 17:13:31 +00:00
roberto
8eb32b0a5c The "acfcomp" field is not in the structure anymore. There may be a better
way to do that but it fixes buildworld.

World broken by: archie :-)
1999-11-19 10:51:16 +00:00
jdp
e6ef049a31 For the TCP transport, put the listening socket in non-blocking
mode.  This addresses a well-known race condition that can cause
servers to hang in accept().  The relevant case is when somebody
connects to the server and then immediately kills the connection
by sending a TCP reset.  On the server this causes select to report
a ready condition on the socket, after which the accept call blocks
because there is no longer any pending connection to accept.

In -current there is already a work-around for this in the kernel.
It was merged into -stable some time ago, but then David Greenman
reverted it because it seemed to be causing a socket leak in some
cases.  (See uipc_socket.c revision 1.51.2.3.)  Hence this userland
fix is needed in -stable, and I plan to merge it into that branch
soon because it fixes a potential DoS attack.  It may also be needed
in -current if the suspected socket leak turns out to be real.  In
any case, after thinking it over I believe the fix belongs in
userland.  An application shouldn't assume that a ready return from
select guarantees that the subsequent I/O operation cannot block.
A lot can happen between the select and the accept.

A similar fix should most likely be applied to the Unix domain
socket transport too.

Submitted by:	peter
Reviewed by:	jdp
1999-11-18 03:01:06 +00:00
brian
74c8c41cdf Make setproctitle(NULL) restore all of the original arguments
(if it's able).
1999-11-17 21:12:17 +00:00
jdp
1e25443f78 Fix a bug in the hack that protects against FTP bounce attacks.
It used to loop back up to the accept() call and block there,
shutting out all other transports until a new connection came in.
Now it returns instead after dropping the connection.  That will
take it back to the select() loop where all transports can be
serviced.  I intend to MFC this within a day or two since it
fixes a DoS vulnerability.
1999-11-17 01:54:17 +00:00
peter
42492554c2 Don't complain loudly about unknown termcap capabilities, eg:
{vladivostok:/usr/home/ken:1:0} echo |more
"TERMCAP", line 0, col 60, terminal 'screen': unknown capability 'G0'
"TERMCAP", line 0, col 806, terminal 'screen': unknown capability 'AX'

Submitted by:	Kenneth D. Merry <ken@kdm.org>
1999-11-17 01:01:02 +00:00
phk
9e8e07135f Introduce commandline caching in the kernel.
This fixes some nasty procfs problems for SMP, makes ps(1) run much faster,
and makes ps(1) even less dependent on /proc which will aid chroot and
jails alike.

To disable this facility and revert to previous behaviour:
        sysctl -w kern.ps_arg_cache_limit=0

For full details see the current@FreeBSD.org mail-archives.
1999-11-16 20:31:58 +00:00
sheldonh
d184788f57 Add to pwd_mkdb a -q option to silence warnings about large IDs. Add a
suitably ominous warning in the manual page.

The diff applied is not the one provided in the attributed PR.

PR:		13344
Reviewed by:	bde
1999-11-15 16:45:37 +00:00
kris
bd25d03150 fts_pathlen and fts_namelen are u_short, not short
Obtained from:	OpenBSD
1999-11-15 03:29:19 +00:00
kris
0bd1e877d6 Typo
Obtained from:	OpenBSD
1999-11-15 03:13:23 +00:00
chris
0a858ce84b Properly document what ENOENT really means for kldfind(2). 1999-11-14 18:15:33 +00:00
marcel
e753d26909 Don't include Kerberos if NOCRYPT is defined, because it isn't build
if NOCRYPT is defined. Likewise, don't include DES if NOSECURE is
defined.
1999-11-14 15:48:29 +00:00