summaryrefslogtreecommitdiff
path: root/lib/libc
Commit message (Collapse)AuthorAgeFilesLines
* Implement compile time thread lock debug.John Birrell1998-06-092-4/+4
| | | | Notes: svn path=/head/; revision=36808
* Rename fstat as _thread_sys_fstat if being built into libc_r.John Birrell1998-06-091-1/+5
| | | | Notes: svn path=/head/; revision=36807
* Implement thread support for libc_r. Make the lseek syscall directlyJohn Birrell1998-06-091-2/+7
| | | | | | | to avoid recursive locking. Notes: svn path=/head/; revision=36806
* Implement compile time debug mode for thread locks.John Birrell1998-06-093-11/+11
| | | | Notes: svn path=/head/; revision=36805
* Add support for thread lock debug. No impact of the malloc code.John Birrell1998-06-091-4/+4
| | | | Notes: svn path=/head/; revision=36804
* Implement compile time debug support for spinlocks.John Birrell1998-06-091-5/+24
| | | | | | | | | Simplify the atomic lock prototype, removing the lock value. Delete the unlock prototypes that are not required. Notes: svn path=/head/; revision=36803
* Fix this so that it compiles in the !__STDC__ case.Steve Price1998-06-061-1/+5
| | | | | | | | | Also be consistent about usage of #if ... Pointed out by: bde Notes: svn path=/head/; revision=36706
* Spelling corrections.Joseph Koshy1998-06-063-4/+4
| | | | | | | | PR: 6868 Submitted by: Josh Gilliam <josh@quick.net> Notes: svn path=/head/; revision=36692
* Spelling nits.Joseph Koshy1998-06-062-4/+4
| | | | | | | Pointed out by: Sue Blake <sue@welearn.com.au> Notes: svn path=/head/; revision=36688
* Fix handling more than 1 char with non-C localeAndrey A. Chernov1998-06-051-16/+4
| | | | | | | | | Misc. cleanup PR: 6825 Submitted by: Sergey Gershtein <sg@mplik.ru> Notes: svn path=/head/; revision=36665
* Mention that tftpd(8) also uses syslog(3).Joseph Koshy1998-06-051-2/+3
| | | | Notes: svn path=/head/; revision=36664
* Fix a bunch of spelling errors.Steve Price1998-06-0410-18/+18
| | | | | | | | PR: 6856 Submitted by: Josh Gilliam <josh@quick.net> Notes: svn path=/head/; revision=36649
* Correct wrong claim about `telldir()' cookie lifetimes.Joseph Koshy1998-06-031-16/+11
| | | | | | | | PR: 4043 Submitted by: Joe Orthoefer <j_orthoefer@tia.net> Notes: svn path=/head/; revision=36603
* Add a trivial mechanism for returning a useful default value if one isMike Smith1998-06-011-1/+4
| | | | | | | | | | | | 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
* Several sources including Unix98 say that semctl's fourthSteve Price1998-05-311-5/+24
| | | | | | | | | | | | | 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
* Remove references to getvfsbytype. Also remove getvfsbynameSteve Price1998-05-301-32/+13
| | | | | | | | | as it has its own manpage. Discussed with: bde Notes: svn path=/head/; revision=36474
* Remove a couple style bugs from the code snippet thatSteve Price1998-05-261-3/+3
| | | | | | | | | slipped in on the previous commit. Submitted by: bde Notes: svn path=/head/; revision=36388
* Update code example to reflect current practice.Steve Price1998-05-251-12/+10
| | | | Notes: svn path=/head/; revision=36381
* The incorrect select() timeout calculation that I fixed in svc_tcp.cBill Paul1998-05-211-2/+2
| | | | | | | | also exists here (the timeout can expire much sooner than it's supposed to). Notes: svn path=/head/; revision=36280
* Change the sanity test here. It's not correct to assume that the recordBill Paul1998-05-201-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Replace the getpublickey() stub with the real thing.Bill Paul1998-05-181-33/+160
| | | | Notes: svn path=/head/; revision=36165
* Improve DoS avoidance in RPC stream oriented transports. The TCP transportBill Paul1998-05-182-34/+70
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* kill.1: Remove reference to obsolete sigvec(2) man page. RemovedJoseph Koshy1998-05-181-2/+1
| | | | | | | | | | self reference in sigaction(2) man page. Submitted by: Josh Gilliam <josh@quick.net> PR: 6617 Notes: svn path=/head/; revision=36143
* Patch RPC library to avoid possible denial of service attacks as describedBill Paul1998-05-151-1/+7
| | | | | | | | | | | | | | | 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
* Patch RPC library to avoid possible denial of service attacks as describedBill Paul1998-05-152-2/+4
| | | | | | | | | 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
* Remove a big hack after adding a small one to libc/gen/getcwd.c toJohn Birrell1998-05-152-232/+2
| | | | | | | handle the lack of __getcwd syscall in NetBSD. Notes: svn path=/head/; revision=36061
* NetBSD doesn't have a __getcwd syscall, so set have__getcwd to `no'John Birrell1998-05-151-0/+4
| | | | | | | when building libc with NetBSD syscalls. Notes: svn path=/head/; revision=36060
* int -> long changes that reduce the diffs with the NetBSD version toJohn Birrell1998-05-142-34/+34
| | | | | | | work in a 64-bit environment. Notes: svn path=/head/; revision=36043
* Remove reference to signanosleepAndrey A. Chernov1998-05-141-1/+0
| | | | Notes: svn path=/head/; revision=36039
* Nuke signanosleep()Peter Wemm1998-05-142-21/+3
| | | | Notes: svn path=/head/; revision=36037
* Cast a pointer to a long, not an int and make the arg passed to the functionJohn Birrell1998-05-111-2/+2
| | | | | | | a long too (it does have a proper prototype). Notes: svn path=/head/; revision=35941
* Cast a pointer to a long, not an int before masking it.John Birrell1998-05-101-1/+1
| | | | Notes: svn path=/head/; revision=35923
* Remove 'of type long' from a sentence talking about four 4-byte valuesJohn Birrell1998-05-101-2/+1
| | | | | | | because that is wrong on alpha. Notes: svn path=/head/; revision=35922
* Fixed the usual missing dependencies on headers generated by rpcgen.Bruce Evans1998-05-101-2/+2
| | | | Notes: svn path=/head/; revision=35908
* Fixed the usual missing dependencies on headers generated by rpcgen.Bruce Evans1998-05-091-6/+6
| | | | | | | | | | | | 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
* Add a BUGS section and describe a problem I've been having forBrian Somers1998-05-091-1/+14
| | | | | | | a few weeks now. Notes: svn path=/head/; revision=35897
* This is a hack to workaround source that is coded to use long variablesJohn Birrell1998-05-082-2/+2528
| | | | | | | | | | | | | 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
* Remote the NetBSD kludge for vfprintf.cJohn Birrell1998-05-081-9/+2
| | | | Notes: svn path=/head/; revision=35836
* Don't assign the va_list variable 'ap' directly to the argtable becauseJohn Birrell1998-05-081-19/+18
| | | | | | | | 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
* Use the thread-aware errno definition all the time.John Birrell1998-05-052-44/+6
| | | | Notes: svn path=/head/; revision=35762
* Build the syscalls (in libc, not libc_r) with weak symbols so thatJohn Birrell1998-05-052-6/+18
| | | | | | | libpthread can override them as required. Notes: svn path=/head/; revision=35761
* Remove extern int errno and #include <errno.h> to get the proper definition.John Birrell1998-05-051-1/+1
| | | | Notes: svn path=/head/; revision=35760
* Remove leading underscores from the FILE lock functions that POSIXJohn Birrell1998-05-051-3/+3
| | | | | | | specifies. Notes: svn path=/head/; revision=35759
* Remove leading underscores for the functions (weak symbols here) thatJohn Birrell1998-05-051-4/+7
| | | | | | | POSIX defines. Notes: svn path=/head/; revision=35757
* In a threaded library, expect the lock field to be declared volatile,John Birrell1998-05-051-5/+5
| | | | | | | | so provide function prototypes that respect that, avoiding a gcc warning that `volatile' is being thrown away. Notes: svn path=/head/; revision=35753
* Fix a few nits in quoted code fragments and elsewhere.Robert Nordier1998-05-041-5/+4
| | | | Notes: svn path=/head/; revision=35726
* Typo fix.James Raynard1998-05-031-2/+2
| | | | Notes: svn path=/head/; revision=35656
* Pedantry (NULL -> NUL).James Raynard1998-05-031-1/+1
| | | | Notes: svn path=/head/; revision=35655
* Don't imply sigset_t == int.James Raynard1998-05-031-1/+1
| | | | Notes: svn path=/head/; revision=35654
* Resolve some unexpected differences when comparing with the 2.2 version.Peter Wemm1998-05-021-2/+10
| | | | | | | | | 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