| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
Notes:
svn path=/head/; revision=36808
|
| |
|
|
| |
Notes:
svn path=/head/; revision=36807
|
| |
|
|
|
|
|
| |
to avoid recursive locking.
Notes:
svn path=/head/; revision=36806
|
| |
|
|
| |
Notes:
svn path=/head/; revision=36805
|
| |
|
|
| |
Notes:
svn path=/head/; revision=36804
|
| |
|
|
|
|
|
|
|
| |
Simplify the atomic lock prototype, removing the lock value.
Delete the unlock prototypes that are not required.
Notes:
svn path=/head/; revision=36803
|
| |
|
|
|
|
|
|
|
| |
Also be consistent about usage of #if ...
Pointed out by: bde
Notes:
svn path=/head/; revision=36706
|
| |
|
|
|
|
|
|
| |
PR: 6868
Submitted by: Josh Gilliam <josh@quick.net>
Notes:
svn path=/head/; revision=36692
|
| |
|
|
|
|
|
| |
Pointed out by: Sue Blake <sue@welearn.com.au>
Notes:
svn path=/head/; revision=36688
|
| |
|
|
|
|
|
|
|
| |
Misc. cleanup
PR: 6825
Submitted by: Sergey Gershtein <sg@mplik.ru>
Notes:
svn path=/head/; revision=36665
|
| |
|
|
| |
Notes:
svn path=/head/; revision=36664
|
| |
|
|
|
|
|
|
| |
PR: 6856
Submitted by: Josh Gilliam <josh@quick.net>
Notes:
svn path=/head/; revision=36649
|
| |
|
|
|
|
|
|
| |
PR: 4043
Submitted by: Joe Orthoefer <j_orthoefer@tia.net>
Notes:
svn path=/head/; revision=36603
|
| |
|
|
|
|
|
|
|
|
|
|
| |
available and the kernel MIB setting is zero.
Return the result from getpagesize() if the p1003_1b.pagesize MIB
value is zero.
Suggested by: Joerg Schilling <schilling@fokus.gmd.de>
Notes:
svn path=/head/; revision=36577
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
parameter is optional except where:
cmd == {IPC_SET || IPC_STAT || GETALL || SETVAL || SETALL}
PR: 2448
Reviewed by: bde
Submitted by: Tim Singletary <tsingle@sunland.gsfc.nasa.gov>
Minor tweaks by: steve
Notes:
svn path=/head/; revision=36482
|
| |
|
|
|
|
|
|
|
| |
as it has its own manpage.
Discussed with: bde
Notes:
svn path=/head/; revision=36474
|
| |
|
|
|
|
|
|
|
| |
slipped in on the previous commit.
Submitted by: bde
Notes:
svn path=/head/; revision=36388
|
| |
|
|
| |
Notes:
svn path=/head/; revision=36381
|
| |
|
|
|
|
|
|
| |
also exists here (the timeout can expire much sooner than it's supposed
to).
Notes:
svn path=/head/; revision=36280
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
size we receive here should fit into the receive buffer. Unfortunately,
there's no 100% foolproof way to distinguish a ridiculously large record
size that a client actually meant to send us from a ridiculously large
record size that was sent as a spoof attempt.
The one value that we can positively identify as bogus is zero. A
zero-sized record makes absolutely no sense, and sending an endless
supply of zeroes will cause the server to loop forever trying to
fill its receive buffer.
Note that the changes made to readtcp() make it okay to revert this
sanity test since the deadlock case where a client can keep the server
occupied forever in the readtcp() select() loop can't happen anymore.
This solution is not ideal, but is relatively easy to implement. The
ideal solution would be to re-arrange the way dispatching is handled
so that the select() loop in readtcp() can be eliminated, but this is
difficult to implement. I do plan to implement the complete solution
eventually but in the meantime I don't want to leave the RPC library
totally vulnerable.
That you very much Sun, may I have another.
Notes:
svn path=/head/; revision=36257
|
| |
|
|
| |
Notes:
svn path=/head/; revision=36165
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=36156
|
| |
|
|
|
|
|
|
|
|
| |
self reference in sigaction(2) man page.
Submitted by: Josh Gilliam <josh@quick.net>
PR: 6617
Notes:
svn path=/head/; revision=36143
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=36087
|
| |
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=36086
|
| |
|
|
|
|
|
| |
handle the lack of __getcwd syscall in NetBSD.
Notes:
svn path=/head/; revision=36061
|
| |
|
|
|
|
|
| |
when building libc with NetBSD syscalls.
Notes:
svn path=/head/; revision=36060
|
| |
|
|
|
|
|
| |
work in a 64-bit environment.
Notes:
svn path=/head/; revision=36043
|
| |
|
|
| |
Notes:
svn path=/head/; revision=36039
|
| |
|
|
| |
Notes:
svn path=/head/; revision=36037
|
| |
|
|
|
|
|
| |
a long too (it does have a proper prototype).
Notes:
svn path=/head/; revision=35941
|
| |
|
|
| |
Notes:
svn path=/head/; revision=35923
|
| |
|
|
|
|
|
| |
because that is wrong on alpha.
Notes:
svn path=/head/; revision=35922
|
| |
|
|
| |
Notes:
svn path=/head/; revision=35908
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=35898
|
| |
|
|
|
|
|
| |
a few weeks now.
Notes:
svn path=/head/; revision=35897
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=35837
|
| |
|
|
| |
Notes:
svn path=/head/; revision=35836
|
| |
|
|
|
|
|
|
| |
va_list is not a pointer on alpha. Instead, use the va_arg() macro
to return the address that is stored in the argtable.
Notes:
svn path=/head/; revision=35835
|
| |
|
|
| |
Notes:
svn path=/head/; revision=35762
|
| |
|
|
|
|
|
| |
libpthread can override them as required.
Notes:
svn path=/head/; revision=35761
|
| |
|
|
| |
Notes:
svn path=/head/; revision=35760
|
| |
|
|
|
|
|
| |
specifies.
Notes:
svn path=/head/; revision=35759
|
| |
|
|
|
|
|
| |
POSIX defines.
Notes:
svn path=/head/; revision=35757
|
| |
|
|
|
|
|
|
| |
so provide function prototypes that respect that, avoiding a gcc
warning that `volatile' is being thrown away.
Notes:
svn path=/head/; revision=35753
|
| |
|
|
| |
Notes:
svn path=/head/; revision=35726
|
| |
|
|
| |
Notes:
svn path=/head/; revision=35656
|
| |
|
|
| |
Notes:
svn path=/head/; revision=35655
|
| |
|
|
| |
Notes:
svn path=/head/; revision=35654
|
| |
|
|
|
|
|
|
|
| |
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().
Notes:
svn path=/head/; revision=35624
|