1309 Commits

Author SHA1 Message Date
wpaul
bf09c95533 Replace the getpublickey() stub with the real thing. 1998-05-18 21:59:15 +00:00
wpaul
e50ecde61b Improve DoS avoidance in RPC stream oriented transports. The TCP transport
uses readtcp() to gather data from the network; readtcp() uses select(),
with a timeout of 35 seconds. The problem with this is that if you
connect to a TCP server, send two bytes of data, then just pause, the
server will remain blocked in readtcp() for up to 35 seconds, which is
sort of a long time. If you keep doing this every 35 seconds, you can
keep the server occupied indefinitely.

To fix this, I modified readtcp() (and its cousin, readunix() in svc_unix.c)
to monitor all service transport handles instead of just the current socket.
This allows the server to keep handling new connections that arrive while
readtcp() is running. This prevents one client from potentially monopolizing
a server.

Also, while I was here, I fixed a bug in the timeout calculations. Someone
attempted to adjust the timeout so that if select() returned EINTR and the
loop was restarted, the timeout would be reduced so that rather than waiting
for another 35 seconds, you could never wait for more than 35 seconds total.
Unfortunately, the calculation was wrong, and the timeout could expire much
sooner than 35 seconds.
1998-05-18 16:12:13 +00:00
jkoshy
e0d2492ccb kill.1: Remove reference to obsolete sigvec(2) man page. Removed
self reference in sigaction(2) man page.

Submitted by: Josh Gilliam <josh@quick.net>
PR: 6617
1998-05-18 03:33:11 +00:00
wpaul
4851695cf7 Patch RPC library to avoid possible denial of service attacks as described
recently in BUGTRAQ. The set_input_fragment() routine in the XDR record
marking code blindly trusts that the first two bytes it sees will in fact
be an actual record header and that the specified size will be sane. In
fact, if you just telnet to a listening port of an RPC service and send a
few carriage returns, set_input_fragment() will obtain a ridiculously large
record size and sit there for a long time trying to read from the network.

A sanity test is required: if the record size is larger than the receive
buffer, punt.
1998-05-15 22:57:31 +00:00
wpaul
22b36bc76e Patch RPC library to avoid possible denial of service attacks as described
recently in BUGTRAQ. If a stream oriented transport fails to properly decode
an RPC message header structure where there should be one, it should mark
the stream as dead so that the connection will be dropped.
1998-05-15 22:53:47 +00:00
jb
8c501829fc Remove a big hack after adding a small one to libc/gen/getcwd.c to
handle the lack of __getcwd syscall in NetBSD.
1998-05-15 12:01:06 +00:00
jb
8760b05d11 NetBSD doesn't have a __getcwd syscall, so set have__getcwd to `no'
when building libc with NetBSD syscalls.
1998-05-15 11:59:00 +00:00
jb
0b3f0b0fa4 int -> long changes that reduce the diffs with the NetBSD version to
work in a 64-bit environment.
1998-05-14 21:45:18 +00:00
ache
908b161b95 Remove reference to signanosleep 1998-05-14 14:39:58 +00:00
peter
4427c496d6 Nuke signanosleep() 1998-05-14 11:36:16 +00:00
jb
7cc9edd463 Cast a pointer to a long, not an int and make the arg passed to the function
a long too (it does have a proper prototype).
1998-05-11 09:10:38 +00:00
jb
df8078ac07 Cast a pointer to a long, not an int before masking it. 1998-05-10 21:22:47 +00:00
jb
de44a06af6 Remove 'of type long' from a sentence talking about four 4-byte values
because that is wrong on alpha.
1998-05-10 21:21:01 +00:00
bde
5fd26ab88a Fixed the usual missing dependencies on headers generated by rpcgen. 1998-05-10 15:54:22 +00:00
bde
d04603a325 Fixed the usual missing dependencies on headers generated by rpcgen.
Use rpcgen's -C option, although using it for non-headers breaks K&R
support.  A local copy of yp.h is built to avoid adding
-I/usr/include/rpcsvc to CFLAGS.  This version of yp.h differed from
<rpcsvc/yp.h> only in not declaring prototypes.

Fixed style bugs.
1998-05-09 15:10:53 +00:00
brian
deb14ceb4a Add a BUGS section and describe a problem I've been having for
a few weeks now.
1998-05-09 14:45:06 +00:00
jb
1baebded07 This is a hack to workaround source that is coded to use long variables
but also assumes that they are 32-bits. This is one place where I don't
think it is appropriate to change 'long' to 'int'. I don't see why the
code couldn't be fixed so that using natural long variables does the
right thing. It's spaggetti code so it'll take some effort. Obviously
NetBSD thought so too because they change 'long' to 'int32_t' etc
and left it at that. As a temporary measure FreeBSD/Alpha can use the
NetBSD code and put this on the list of things to fix.
1998-05-08 05:41:57 +00:00
jb
444dd67e6d Remote the NetBSD kludge for vfprintf.c 1998-05-08 05:17:11 +00:00
jb
de6ae1a8e2 Don't assign the va_list variable 'ap' directly to the argtable because
va_list is not a pointer on alpha. Instead, use the va_arg() macro
to return the address that is stored in the argtable.
1998-05-08 05:10:32 +00:00
jb
d0233a4f17 Use the thread-aware errno definition all the time. 1998-05-05 22:07:02 +00:00
jb
87e29f1d78 Build the syscalls (in libc, not libc_r) with weak symbols so that
libpthread can override them as required.
1998-05-05 22:06:16 +00:00
jb
6efb933327 Remove extern int errno and #include <errno.h> to get the proper definition. 1998-05-05 22:04:13 +00:00
jb
f615de946e Remove leading underscores from the FILE lock functions that POSIX
specifies.
1998-05-05 22:02:29 +00:00
jb
7e3d598851 Remove leading underscores for the functions (weak symbols here) that
POSIX defines.
1998-05-05 21:56:42 +00:00
jb
39a9cfde14 In a threaded library, expect the lock field to be declared volatile,
so provide function prototypes that respect that, avoiding a gcc
warning that `volatile' is being thrown away.
1998-05-05 21:46:30 +00:00
rnordier
f35a3f07ec Fix a few nits in quoted code fragments and elsewhere. 1998-05-04 23:16:50 +00:00
jraynard
b887402c0f Typo fix. 1998-05-03 22:50:14 +00:00
jraynard
577c94a0dc Pedantry (NULL -> NUL). 1998-05-03 22:42:45 +00:00
jraynard
738fe753d0 Don't imply sigset_t == int. 1998-05-03 22:27:29 +00:00
peter
da6a2015e3 Resolve some unexpected differences when comparing with the 2.2 version.
One bug was relatively harmless (select's timeout had an uninitialized
tv_usec), the other I'm not so sure.. (neglected to catch select returns
less than zero).  Both of these were irrelevant on kernels with poll().
1998-05-02 15:51:54 +00:00
peter
119bf19557 Update libc dns code to 4.9.7-T1B level. This involved chopping out large
chunks of res_comp.c and replacing it with chunks of bind-8.1.1's resolver
code.  (There are no interface changes though)
The other parts are better bounds checking related.
1998-05-02 13:11:02 +00:00
brian
42e084c2b1 Go back to version 1.16 - it was correct the way it was.
Pointed out by:	bde
1998-05-01 19:41:12 +00:00
bde
2a590c9b71 Fixed disordering and other style bugs in rev.1.50. 1998-05-01 15:46:06 +00:00
brian
2291918271 connect() returns -1 on error - not 0. 1998-05-01 01:16:39 +00:00
ache
6a800a155d Add reference to setlocale(3) 1998-04-30 16:11:50 +00:00
ache
31715c572f Add reference to catopen(3) 1998-04-30 16:07:54 +00:00
ache
f4a8d4f4e4 Return -1 for invalid descriptor in catclose 1998-04-30 13:15:31 +00:00
ache
b2b5a3545a If passed catgets descriptor is NULL or -1, return default string immediately 1998-04-30 12:25:05 +00:00
ache
c21e828637 Force loadType to 0 1998-04-30 11:39:08 +00:00
ache
1eaf120df9 Implement NL_CAT_LOCALE
Manpages cleanup
1998-04-30 11:06:12 +00:00
ache
fe58d493e0 Prototypes/typedefs cleanup
Fix error return codes
1998-04-30 10:14:55 +00:00
jb
b1f25ca922 Oops, backout the previous change having confused my underscores.
__thread_create is a syscall that uses the default asm. It is
_thread_create that contains specific asm code, but that lives in
libpthread.
1998-04-30 10:02:44 +00:00
jb
3a6394e02b Change the description of errno to match the thread-aware implementation
from 3.0 on. With 3.0 being a major release, now is a good time to do
this.
1998-04-30 09:49:59 +00:00
jb
ae9a13b7c7 Make cerror thread aware by calling __error() to get a pointer to the
thread-specific error variable. This change make libc use the same cerror
code that libc_r has been using.
1998-04-30 09:32:48 +00:00
jb
96749f4d5c The syscall that creates a kernel thread is coming, but it doesn't use the
default syscall asm, so add it to NOASM. The other syscalls that manipulate
kernel threads use the default asm code, so they just get built
automatically.
1998-04-30 09:30:50 +00:00
jb
18a366f3a0 Build __error.c into libc, but not libc_r. The weak symbol in the
file works with libpthread, but when built into libc_r which has a non-weak
symbol of the same name, the linker behaves unpredicatably and sometimes
links the wrong symbol. The linker behaviour is a byproduct of what
the program calls from object to object so it is like winning a lottery
if the program actually works. The odds are quite good - 95:1, I think.
We need a sure thing, though, so weak symbols can't be used instead
of renaming things.
1998-04-30 09:13:48 +00:00
ache
9cd3e70e4d Basic support for LC_MESSAGES 1998-04-29 22:39:56 +00:00
jb
da5557c468 Stop renaming these in libc_r because wrappered versions don't make sense.
PR: i386/4826, bin/5953
1998-04-29 09:14:35 +00:00
jb
f1fb79481d Replace the threaded locking with spinlock calls for both threaded
and non-threaded programs. This makes malloc thread safe for linking
with libpthread and kernel threads.

Reviewed by: phk
1998-04-29 09:10:58 +00:00
jb
0d8f4028af Reference an external variable in threaded programs so that the
autoinitialiser gets linked in and therefore called before main().
1998-04-29 09:08:43 +00:00