summaryrefslogtreecommitdiffstats
path: root/lib/libc
Commit message (Collapse)AuthorAgeFilesLines
* phkmalloc/2phk1995-10-082-311/+370
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "zero' and 'junk' options to help find and diagnose malloc abuse. EXTRA_SANITY defaults "junk" to on. Don't dump the internal state, unless EXTRA_SANITY. General code cleanup. Error messages cleaned up a bit, more checking earlier. EXTRA_SANITY is default at this time (just in case). Performance (without EXTRA_SANITY) is better, beats gnumalloc in both time & space most of the time: # In-memory test. ./malloc 50000000 2000 8192 159.2u 1.5s 2:41.85 99.3% 5+7742k 0+0io 0pf+0w ./gnumalloc 50000000 2000 8192 272.6u 0.4s 4:35.01 99.3% 5+8533k 0+0io 0pf+0w # Swap-space test. ./malloc 500000 14000 8192 6.5u 4.1s 4:08.87 4.3% 5+49209k 0+0io 9772pf+0w ./gnumalloc 500000 14000 8192 16.2u 14.5s 15:36.14 3.2% 5+54100k 0+0io 47651pf+0w # Small items test. ./malloc 20000000 20000 2048 67.0u 0.3s 1:07.83 99.2% 5+18199k 0+0io 4pf+0w ./gnumalloc 20000000 20000 2048 66.2u 0.3s 1:07.03 99.3% 5+18107k 0+0io 0pf+0w SANITY is not an option anymore. (!!)
* Some NIS bug stomping:wpaul1995-10-061-24/+41
| | | | | | | | | | | | | | | | | | | | | | - In some cases, we don't properly resolve _all_ possible group memberships. If a user is a member of both local and NIS groups, we sometimes lose some of the membership info from NIS. (Reported by: Thorsten Kukuk <kukuk@uni-paderborn.de>) - Make NIS +groupname overrides actually work the way the SunOS group(5) man page says they should (make them work for all cases: getgrent(), getgrnam() and getgrgid()). - When not compiled with -DYP, grscan() should ignore entries that begin with a '+'. When compiled _with_ -DYP, grscan() should ignore +groupname entries that don't refer to real NIS groups. - Remove redundant redeclaration of fgets(), strsep() and index() inside grscan(). We already #include all the right header files for these. Note: -groupname exclusion as specified in the Sun documentation still isn't supported. This'll be a 2.2 addition. Right now I just want this stuff to work.
* remove GCC support functions from libc.phk1995-10-052-4/+2
| | | | Should never have been here in the first place.
* Fix the problem that I aroused with the last commit..peter1995-10-051-4/+10
| | | | | | | | | | | | | | | What was happening, is if syslogd was not running, syslog() would do a strcat("\r\n") on a non-null-terminated buffer, and write it to the console. This meant that sometimes extra characters could be written to the console during boot, depending on the stack contents. This totally avoids the potential problem by using writev() like the rest of the does, and avoid modifying the buffer after the trouble we've gone to to carefully protect it. This is actually a trivial fix, in spite of the long commit message.. :-) It only appeared during boot and shutdown with syslogd stopped.
* Make a link-time warning for the use of gets().peter1995-10-041-0/+3
| | | | | | | IMHO, the run-time warning should come out, but I'm not game to start that fight yet... This uses a feature of the gnu linker. Inspired by: NetBSD
* Calling sbrk(2) with zero argument doesn't need to generate a syscall.phk1995-10-042-8/+20
| | | | Reviewed by: bde
* Add man pages for the SYSV shm* and sem* functions.joerg1995-10-037-1/+890
| | | | | | | This partially closes PR # docs/177. This should probably also go into 2.1. Submitted by: daveho@infocom.com (David Hovemeyer)
* This gets() used \r\n, which is doggish.bde1995-09-291-1/+1
|
* Make ttyname() use posix-style tcgetattr() to check to see that it'speter1995-09-221-3/+3
| | | | | | running on a tty. (Same as isatty()) The old-style TIOCGETP ioctl wouldn't fly if the kernel didn't have COMPAT_43. Submitted by: Carl Fongheiser <cmf@netins.net>
* A buglet when dumping and a stylistic point from Mike.phk1995-09-221-8/+8
| | | | Submitted by: Mike Pritchard <mpp@mpp.minn.net>
* ``phkmalloc''phk1995-09-163-373/+1123
| | | | | | | Performance is comparable to gnumalloc if you have sufficient RAM, and it screams around it if you don't. Compiled with "EXTRA_SANITY" until further notice. see malloc.3 for more details.
* Fix security bugs with a "new approach", using stdio's powerful bufferpeter1995-09-151-18/+86
| | | | | | | | control hooks. It is similar to an unrolled multi-part snprintf(), in that a "FILE *" is attached to a string buffer. There is also an optimisation for the case where the syslog format string does not contain %m, which should improve performance of "informational" logging, like from ftpd.
* Indicate that backlog limit is 32.dg1995-09-151-1/+1
|
* getgrent.c: adjust _nextypgroup() slightly so that it continues processingwpaul1995-09-052-4/+10
| | | | | | | | | | | | | the group map after encountering a badly formatted entry. getpwent.c: same as above for _nextyppass(), and also turn a couple of sprintf()s into snprintf()s to avoid potential buffer overruns. (The other day I nearly went mad because of a username in my NIS database that's actually 9 characters long instead of 8. Stuffing a 9-character username into an 8-character buffer can do some strange things.) (This reminds me: I hope somebody's planning to fix the buffer overrun security hole in syslog(3) before 2.1 ships.)
* Clear up a minor bogosity in yp_match(): we have YPMATCHCACHE turnedwpaul1995-09-021-5/+5
| | | | | | | | | on, which is fine, except that _yp_dobind() is called before we check the cache. The means we can return from the cache check (if we have a hit) without calling _yp_unbind(). We should do the cache check first and _then_ drop into the section that binds the server and does the yp_match query.
* getpwent.c: turn the code that checks the override caches into awpaul1995-09-023-74/+79
| | | | | | | | | | | | | seperate function to avoid duplication. Also fix getpwent() a small bit to properly handle the case where the magic NIS '+' entry appears before the end of the password file. getgrent.c: be a little more SunOS-ish. Make it look like the NIS group map is 'inserted' at the the point(s) where the magic NIS '+' entry/entries appear. getgrent: fix a file descriptor leak: remember to close the netgroup file after we determine that we're using NIS-only innetgr() lookups.
* National date/time representation in syslog logfiles looks ugly,ache1995-08-291-2/+1
| | | | | change strftime to ctime. Logfiles must have default (english) date/time representation for access/view from various places.
* Remove the CFLAGS+=-I${CURDIR}/net that I previously added.peter1995-08-211-1/+0
| | | | | | Since Bruce changed the #include <res_config.h> to #include "res_config.h" this is no longer needed, and only makes the 'make' more verbose for no real reason.
* Define DEBUG as 1 instead of as nothing so that it doesn't conflict withbde1995-08-211-1/+1
| | | | -DDEBUG in libresolv/Makefile.
* Fix bogus include paths, some of which stopped libresolv from compiling.bde1995-08-216-14/+12
|
* Update the resolver part of libc to bind-4.9.3-beta24 level (from beta9p1)peter1995-08-209-215/+420
| | | | | | | | Note that this was done by selective patching from diffs, to not conflict with the 4.4bsd base code.. This was *not* a trivial task.. I have been testing this code (apart from cosmetic changes) in my libc for a while now. Obtained from: Paul Vixie <paul@vix.com>
* fgetline does not exist.. fgetln is in it's place. Correct the X-Ref.peter1995-08-181-1/+1
| | | | Noticed by: Brian Tao, Bruce Evans
* There is no such file as /usr/include/ufs/quota.h. There is a filejoerg1995-08-151-1/+1
| | | | | | | | | /usr/include/ufs/ufs/quota (#include <ufs/ufs/quota.h>) that seems to work ok though. Closes PR # docs/670: quotactl man page incorr... Submitted by: evans@scnc.k12.mi.us (Jeffrey Evans)
* Submitted by: Bill Fenner <fenner@parc.xerox.com>wpaul1995-08-141-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | Fix for PR #510. The original problem was that __ivaliduser() was failing to grant access to a machine listed in a +@netgroup specified in /etc/hosts.equiv, even though the host being checked was most certainly in the +@netgroup. The /etc/hosts.equiv file in question looked like this: localhost +@netgroup The reason for the failure was had to do with gethostbyaddr(). Inside the __ivaliduser() routine, we need to do a gethostbyaddr() in order to get back the actual name of the host we're trying to validate since we're only passed its IP address. The hostname returned by gethostbyaddr() is later passed as an argument to innetgr(). The problem is that __icheckhost() later does a gethostbyname() of its own, which clobbers the buffer returned by gethostbyaddr(). The fix is just to copy the hostname into a private buffer and use _that_ as the 'host' argument that gets passed to innetgr(). And here I was crawling all over the innetgr() code thinking the problem was there. *sigh*
* Forget to close fileache1995-08-112-0/+2
| | | | Submitted by: SANETO Takanori sanewo@strg.sony.co.jp
* Bump shlib minor because xdr_* functions have been enabled. Do NOTasami1995-08-091-1/+1
| | | | | | | | | | bump it again if something else is added before 2.2. The xdr_* functions are enabled only in the 2.2 (-current) branch so far. If that modification is moved to the 2.1 (-stable) branch, this one should, too. Reviewed by: the mailing lists
* Fix _listmatch() so that it doesn't fall off the end of the list string.wpaul1995-08-081-6/+5
|
* Fix manpage to reflect current sourcesache1995-08-071-21/+49
|
* Restore %s format support from previous versionache1995-08-071-1/+22
|
* Just when you thought it was safe...wpaul1995-08-073-40/+212
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - getnetgrent.c: address some NIS compatibility problems. We really need to use the netgroup.byuser and netgroup.byhost maps to speed up innetgr() when using NIS. Also, change the NIS interaction in the following way: If /etc/netgroup does not exist or is empty (or contains only the NIS '+' token), we now use NIS exclusively. This lets us use the 'reverse netgroup' maps and is more or less the behavior of other platforms. If /etc/netgroup exists and contains local netgroup data (but no '+'). we use only lthe local stuff and ignore NIS. If /etc/netgroup exists and contains both local data and the '+', we use the local data nd the netgroup map as a single combined database (which, unfortunately, can be slow when the netgroup database is large). This is what we have been doing up until now. Head off a potential NULL pointer dereference in the old innetgr() matching code. Also fix the way the NIS netgroup map is incorporated into things: adding the '+' is supposed to make it seem as though the netgroup database is 'inserted' wherever the '+' is placed. We didn't quite do it that way before. (The NetBSD people apparently use a real, honest-to-gosh, netgroup.db database that works just like the password database. This is actually a neat idea since netgroups is the sort of thing that can really benefit from having multi-key search capability, particularly since reverse lookups require more than a trivial amount of processing. Should we do something like this too?) - netgroup.5: document all this stuff. - rcmd.c: some sleuthing with some test programs linked with my own version of innetgr() has revealed that SunOS always passes the NIS domain name to innetgr() in the 'domain' argument. We might as well do the same (if YP is defined). - ether_addr.c: also fix the NIS interaction so that placing the '+' token in the /etc/ethers file makes it seem like the NIS ethers data is 'inserted' at that point. (Chances are nobody will notice the effect of this change, which is just te way I like it. :)
* Install non-source files with the optional flag ${COPY}, not with the flag -c.bde1995-08-061-1/+1
|
* Change `install' to `${INSTALL}' so that default install flags can bebde1995-08-061-1/+1
| | | | | | | specified in the top level Makefiles. Previously I missed dozens of Makefiles that skip the install after using `cmp -s' to decide that the install isn't necessary.
* Fix default %c to be ctime-compatible as supposed (by Solaris too)ache1995-08-061-4/+4
|
* The European Commission went out and invented a new sort of summer-timewollman1995-08-053-224/+321
| | | | | | changeover, so we have to extend the format of timezone files (in a backward- compatible way, of course). This probably means that libc needs a minor version number bump before 2.2 is released (or maybe not).
* Don't depend on bogusly-installed <tzfile.h>.wollman1995-08-051-1/+1
|
* Fix cut&paste error: LC_COLLATE should be LC_TIMEache1995-08-051-3/+3
|
* Add time locale loadingache1995-08-051-0/+8
|
* Move rtprio.2 from usr.sbin/rtprio to lib/libc/sys, overwriting the bogusbde1995-08-051-28/+42
| | | | | | version in the latter directory. Reviewed by: davidg
* Implement locale-sensitive strftime () from ADO (heavily modifiedwollman1995-08-043-106/+254
| | | | | | | | | | by me). This probably loses for multibyte characters, but I have no way of telling. I'll let ache decide whether to add this support to startup_setlocale. Note that for this to make any sense at all, the symlinks in /usr/share/locale must go. (For the moment, this doesn't make any difference since there are no locales supplied.) Obtained from: Arthur David Olson <ado@elsie.nci.nih.gov>
* Reviewed by: David Greenmanwpaul1995-08-021-14/+4
| | | | | | | | | | | | | | | Back out the 'help NIS rebind faster' hack. This change used a connect()/send() pair rather than the original sendto() to allow RPC to pass ICMP host unreachable and similar errors up to RPC programs that use UDP. This is not a terrible thing by itself, but it can cause trouble in environments with multi-homed hosts: if the portmapper on the multi-homed machine sends a reply with a source address that's different than the one associated with the connection by connect(), the kernel will send a port unreachable message and drop the reply. For the sake of compatibility with everybody else on the planet, it's best to revert to the old behavior. *long, heavy sigh*
* Make strtod conforms manpage, use isspace to skip initial whitespacesache1995-08-011-7/+3
| | | | instead of hardcoded whitespaces
* Similar changes like in strtol, all this family is VERY brokenache1995-08-015-5/+15
| | | | in 8bit environment (isalpha at the end of digits)
* strtol and atoi VERY broken in 8bit chars locale, i.e. if you pass somethingache1995-08-011-1/+3
| | | | | | like 38400<any 8bit char, isalpha> it not detect this stuff and produce very big number instead. Fixed by operating with unsigned char and checking for isascii. (secure/telnetd hits by it f.e.)
* Null terminate all strings returned by the dummy uname() routine,mpp1995-07-312-18/+26
| | | | | | | and make sure that the version string is somewhat sane. This closes out PR#462. Reviewed by: Bruce Evans
* bkr() returns an int, and not a pointer. Document this.joerg1995-07-231-3/+3
| | | | | | | | Closes PR #pending/630. Pointed out by: phk Obtained from:
* Confirmed to work by: rcarter@geli.com (Russell Carter)bde1995-07-221-4/+1
| | | | | Enable xdr_float.c. I believe it works on i386's although it isn't portable enough to be in a machine-independent directory.
* Slight adjustment to previous fix for __ivaliduser(). It was checking forpeter1995-07-161-2/+4
| | | | | | | | the comment before checking for long lines, so there was a possibility that the wrap-around might be used as an exploitable hostname. Reviewed by: Submitted by: Obtained from:
* Make ruserok() accept the #-starting comment lines we used to havejoerg1995-07-161-0/+2
| | | | | | in our default /etc/hosts.equiv. Closes PR #conf/620: Default /etc/hosts.equiv...
* The declaration of sigaction was missing a `const'.bde1995-07-161-1/+1
|
* Fix the synopsis of signal() again. Now it is uglier but correct.bde1995-07-161-2/+2
| | | | | (Declarations of signal that don't use typedefs can't be formatted in the standard man page form.)
OpenPOWER on IntegriCloud