summaryrefslogtreecommitdiffstats
path: root/lib/libc
Commit message (Collapse)AuthorAgeFilesLines
* Add 8bit collate stuffache1995-02-165-110/+150
| | | | Submitted by: alex@elvisti.kiev.ua
* Add 8-bit collate stuffache1995-02-165-2/+270
| | | | Submitted by: alex@elvisti.kiev.ua
* Document Transaction TCP extensions to generic system calls.wollman1995-02-152-15/+46
|
* Backed out Keith Bostic's getcwd/$PWD hack. It is causing things to breakdg1995-02-072-31/+6
| | | | all over the place.
* Document the getenv(PWD) feature.phk1995-02-051-1/+7
|
* Collapsed _masterpw_breakout_yp() and _pw_breakout_yp() into awpaul1995-02-051-72/+20
| | | | single function.
* A cute hack to speed up things by Keith: if getenv("PWD") is the samephk1995-02-041-5/+24
| | | | | | | | inode as ".", then just return that. I added a check so it must start with a '/'. Reviewed by: phk Submitted by: bostic@cs.berkeley.edu (Keith Bostic)
* Include <time.h> instead of <sys/time.h> to get CLK_TCK. Includingbde1995-02-031-1/+1
| | | | | <sys/time.h> works because <sys/time.h> includes <time.h> if KERNEL is not defined, but is ugly.
* Change CLK_TCK to CLOCKS_PER_SEC.bde1995-02-031-1/+2
| | | | | | Add a missing apostrophe that suggests inverting the frequency to get tick size. It read better before because `CLK_TCK' suggests a tick size although it is actually a frequency.
* Change CLK_TCK to CLOCKS_PER_SEC. (CLK_TCK is a deprecated POSIX featurebde1995-02-031-2/+3
| | | | | | and is not necessarily related to the ANSI CLOCKS_PER_SEC). Parenthesize macro args.
* Fix previous change to preserve const'ness.bde1995-02-031-2/+2
|
* Fixed a rather serious bug that presents itself when FreeBSD is configuredwpaul1995-02-031-2/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | as an NIS client. The pw_breakout_yp routines that are used to populate the _pw_passwd structire only do anything if the bits in the pw_fields member _pw_passwd are cleared. Unfortunately, we can get into a state where pw_fields has garbage in it right before the YP lookup functions are called, which causes the breakout functions to screw up in a big way. Here's how to duplicate the problem: - Configure FreeBSD as an NIS client - Log in as a user who's password database records reside only in the NIS passwd maps. - Type ps -aux Result: your processes appear to be owned by 'root' or 'deamon.' /bin/ls can exhibit the same problem. The reason this happens: - When ps(1) needs to match a username to a UID, it calls getpwuid(). - root is in the local password file, so getpwuid() calls __hashpw() and __hashpw() populates the _pw_passwd struct, including the pw_fields member. This happens before NIS lookups take place because, by coincidence, ps(1) tends to display processes owned by root before it happens upon a proccess owned by you. - When your UID comes up, __hashpw() fails to find your entry in the local password database, so it bails out, BUT THE BITS IN THE pw_fields STRUCTURE OF _pw_passwd ARE NEVER CLEARED AND STILL CONTAIN INFORMATION FROM THE PREVIOUS CALL TO __hash_pw()!! - If we have NIS enabled, the NIS lookup functions are called. - The pw_breakout_yp routines see that the pw_fields bits are set and decline to place the data retrieved from the NIS passwd maps into the _pw_passwd structure. - getpwuid() returns the results of the last __hashpw() lookup instead of the valid NIS data. - Hijinxs ensue when user_from_uid() caches this bogus information and starts handing out the wrong usernames. AAAARRRRRRRRRGGGGGGHHHHHHHHHH!!! *Please* don't tell me I'm the only person to have noticed this. Fixed by having __hashpw() check the state of pw_fields just before bailing out on a failed lookup and clearing away any leftover garbage. What a fun way to spend an afternoon.
* Fix for that last fix... pass the hat. :)wpaul1995-02-011-2/+1
|
* Small fix to _getyppass(): sometimes we can construct the wrong mapnamewpaul1995-02-011-1/+2
| | | | when looking for master.passwd.whatever.
* Some changes for YP password map handling:wpaul1995-01-311-6/+114
| | | | | | | | | | | | | | | | | | | | | - FreeBSD's NIS server can supply a master.passwd map, which has more fields in it than a standard passwd map, so we need a _master_pw_breakout() fuction. - When doing passwd map lookups, look for master.passwd.* by attempting a _yp_first() on master.passwd.byname. If it exists, we're being served by a FreeBSD NIS server and we should use this map. - If we aren't the superuser, retrieve only the standard passwd maps. If we're being served by a FreeBSD system, then the passwd map has no passwords in it, and it won't serve us the master.passwd map unless we're superuser anyway. There's a small speed hit for the superuser inherent in the check for the master.passwd map, but this lets us dynamically decide what to do rather than rely on a non-standard config file somewhere. Since all of this is bypassed for normal users, they shouldn't notice the difference.
* Be sure to properly fail if there are not enough fields. Problemdg1995-01-271-2/+4
| | | | reported by MARC Giannoni <marc@cmc.eng.comsat.com>, this fix is by me.
* Reclaim memory used for telldir cookies on closedir.dfr1995-01-272-0/+30
|
* First round of changes to clean up the RCSID mess in libc:dg1995-01-2383-233/+371
| | | | | | | | 1) Changed LIB_SCCS and SYSLIB_SCCS to LIB_RCS and SYSLIB_RCS. 2) Changed sccsid[] variables to rcsid[] 3) Moved all RCSID strings into .text 4) Converted all SCCSID's to RCS $Id$'s 5) Added missing $Id$'s after copyright.
* Changed LIB_SCCS and SYSLIB_SCCS #defines to LIB_RCS and SYSLIB_RCS.dg1995-01-231-4/+4
|
* (Very) minor improvement from NetBSD/J.T.Conklin.dg1995-01-222-4/+4
|
* Added leaner and meaner swab() function by J.T. Conklin.dg1995-01-222-1/+105
|
* Fix unbalanced #endif introduced by yesterday's change.wollman1995-01-191-1/+1
|
* Fix handling of 'e' format floating point so that it prints trailing zerosdfr1995-01-191-1/+0
| | | | correctly.
* Prevent sites from shooting themselves in the foot while enabling/disablingwollman1995-01-171-1/+1
| | | | | | | YP by disallowing `+' entries as logins in all cases. (This handles the case of a `+' entry in the password file but YP not running, which should never happen but is easy enough to check for so we'll apply some prophylaxis.)
* Add the sys/types.h include to the necessary documented includes for theats1994-12-311-0/+1
| | | | getrusage call.
* fixunsdfsi.S:bde1994-12-271-37/+22
| | | | | | Embalm. Rewrite to do things much the same as gcc-2: use fistpq for speed and elegance, and mishandle overflow consistently. __fixunsdfsi() is no longer called by gcc.
* sigsetjmp.S:bde1994-12-272-6/+4
| | | | Remove unnecessary .text statement.
* Remove unnecessary .align statement.bde1994-12-274-4/+0
|
* Fix a spelling error and add a comment about possible improvements.bde1994-12-271-3/+17
|
* Fix the bug reported by Torbjorn Granlund <tege@cygnus.com>:bde1994-12-251-5/+5
| | | | | | The documentation for mrand48 and lrand48 is mixed up. mrand48 returns a full 32 bit number, while lrand48 only returns 31 bits.
* Add missing getdomainname manual page.guido1994-12-182-3/+103
| | | | | | Reviewed by: Submitted by: Obtained from: 1.1.5.1 with a few modifictaions.
* Obtained from: 1.1.5bde1994-12-121-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | getcwd() has two off-by-one bugs in FreeBSD-2.0: 1. getcwd(buf, size) fails when the size is just large enough. 2. getcwd(buf + 1, 1) incorrectly succeeds when the current directory is "/". buf[0] and buf[2] are clobbered. (I modified Bruce's original patch to return the proper error code [ERANGE] in the case of #2, but otherwise... -DG) This program demonstrates the bug: --- #include <stdlib.h> #include <string.h> #include <stdio.h> #include <unistd.h> int main(void) { char buf[5]; int errors; errors = 0; if (chdir("/tmp") != 0) { perror("chdir"); abort(); } if (getcwd(buf, 5) == NULL) { perror("oops, getcwd failed for buffer size = size required"); ++errors; } if (chdir("/") != 0) { perror("chdir"); abort(); } buf[0] = 0; buf[2] = 1; if (getcwd(buf + 1, 1) != NULL) { fprintf(stderr, "oops, getcwd succeeded for buffer size = one too small\n"); ++errors; } if (buf[0] != 0) { fprintf(stderr, "oops, getcwd scribbled on memory before start of buffer\n"); ++errors; } if (buf[2] != 1) { fprintf(stderr, "oops, getcwd scribbled on memory after end of buffer\n"); ++errors; } exit(errors == 0 ? 0 : 1); }
* Obtained from: 386BSD-0.1 patchkit; also fixed in 1.1.5bde1994-12-121-2/+3
| | | | | | Compare unsigned chars. Return the place after where the character was found and not the start of the string.
* Fix execl[e]. Multiple execle's failed because of bogus caching of thebde1994-12-121-16/+14
| | | | | | | | pointer returned by realloc(). All callers free the pointer if the execve fails. Nuke the caching. This essentially restores buildargv() to the 1.1.5 version. Also fix a memory leak if realloc() fails. Also nuke similar but non-broken caching in execvp(). malloc() should be efficient enough.
* Comment out the man page of rstat.1 from Makefile.inc. There is no rstatats1994-12-114-5/+5
| | | | | | | command available yet. Changed an entry in getprcent.3 from rpcinfo(8C) to rpcinfo(8). Changed an entry in getrpcport.3 from 3R to 3. Changed two entries in rpc.3 from 3N to 3.
* Added the mpool.3 manpage to the installed manpages. It is referred from theats1994-12-111-0/+1
| | | | other manpages and there is no conflict.
* In _gethostbydnsaddr(), force RES_RECURSE into _res.options. This iswollman1994-12-011-1/+4
| | | | | | incredibly obnoxious, but also makes inverse mappings work when the local resolver is in a cache-only configuration. (Maybe this is actually a bug in BIND?)
* Go back to Bruce's fix with a minor change that will allow a NULL stringdg1994-11-251-4/+3
| | | | | | pointer if len is 0. I should have looked at the revision history - I would have found that Bruce already fixed the bug with len=0 over a month ago. Whoever said that the bug was in 2.0 was wrong.
* Fixed bugs related to returning NULL if length is zero.dg1994-11-251-3/+4
|
* Added sysarch system call which is used my i386_get/set_ltd.c and is neededdfr1994-11-171-1/+1
| | | | | | | for Wine support. The current snapshot of wine works fine with this. This should go into the beta as the code which it calls in the kernel is already there, and works fine.
* Added routines to read the canonical UNIX configuration file. This willphk1994-11-133-4/+267
| | | | | | | | | | | later be applied to a number of programs (inetd for instance) to clean out the bogus code doing the same thing, modulus all the bugs. If you need to read a '#'-is-a-comment-file, please use these routines. I realize that the shlib# should be bumped (for the non-US world: increased by something), but will defer this until something significant happens.
* Date: Wed, 26 Oct 1994 15:44:49 -0600nate1994-11-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | From: Chris Torek <torek@bsdi.com> Here is a semi-official patch (apply to /usr/src/lib/libc/stdio/fseek.c, rebuild libc, install). The current code fails when the seek: - is optimized, and - is to just past the end of the block currently in the buffer, and - is followed by another seek with no intervening read operation, and - the destination of subsequent seek is within the block left in the buffer (seeking to the beginning of a block does not force a read, so the buffer still contains the previous block) so it is indeed rather obscure. I may have a different `final' fix, as this one `loses' the buffer contents on a seek that goes just past the end of the current block. [Footnote: seeks are optimized only on read-only opens of regular files that are buffered by the file's optimal I/O size. This is what you get with fopen(path, "r") and no call to setvbuf().] Obtained from: [ BSDI mailing list ]
* >Description:rgrimes1994-10-272-1/+2
| | | | | | | | | | | | | | While trying to figure out why rlogind wasn't working right for root, I noticed that man wouldn't come back with a man page for iruserok, but it would for ruserok. Checking the lib/net directory's Makefile.inc file shows that the link to the rcmd man page just isn't getting created. >How-To-Repeat: Do a 'man iruserok' and notihing will come back, where a 'man ruserok' will. Submitted by: Brian Moore <ziff@houdini.eecs.umich.edu> Obtained from: NetBSD-bugs mailing list
* Fix memchr(p, 0, 0) to return NULL instead of p.bde1994-10-271-3/+3
|
* Reenable sigsetjmp.S. Preserve the FP state. Rearrange offsetsbde1994-10-254-14/+50
| | | | to match setjmp.S.
* Nuke sigsetjmp.c. sigsetjmp() can't be implemented as a C functionbde1994-10-251-2/+2
| | | | | that calls setjmp(), since returning from the function usually clobbers the saved environment.
* cfmakeraw(): set IGNBRK, clear IXOFF, INPCK per Bruce suggestionache1994-10-221-2/+3
| | | | Set IGNPAR, clear NOFLSH, PENDIN, TOSTOP, ECHOE, ECHOK
* makeraw(): forget to clear IMAXBEL, set VMIN/VTIMEache1994-10-221-2/+3
|
* Remove CPU_COLORDISP, GIO_COLOR now existsache1994-10-181-1/+0
|
* Add new machdep variablesache1994-10-171-0/+3
|
OpenPOWER on IntegriCloud