summaryrefslogtreecommitdiff
path: root/lib/libc
AgeCommit message (Collapse)Author
2009-10-21Fix the handle locking in stdio to use flockfile/funlockfilePhilip Guenthe
internally when and where required. Macros in <stdio.h> are updated to automatically call the underlying functions when the process is threaded to obtain the necessary locking. A private mutex is added to protect __sglue, the internal list of FILE handles, and another to protect the one-time initialization. Some routines in libc that use getc() change to use getc_unlocked() as they're either protected by their own lock or aren't thread-safe routines anyway. ok kurt@, earlier version tested by sthen@ and jj@
2009-10-20Check mmap return value against MAP_FAILED not NULL.Paul Irofti
Okay deraadt@, otto@.
2009-10-16teach gdtoa & its subroutines that malloc can fail; in which caseMartynas Venckus
ecvt, fcvt, gcvt, *printf, strtof, strtod, strtold act per ieee 1003.1. after these massive changes, remove unused files which would not work now. reported by Maksymilian Arciemowicz; ok theo
2009-10-10rewrite the history section, prompted by Paul Stoeber; ok deraadt@ jmc@Otto Moerbeek
2009-10-04Add (again) support for divert sockets. They allow you to:Michele Marchetto
- queue packets from pf(4) to a userspace application - reinject packets from the application into the kernel stack. The divert socket can be bound to a special "divert port" and will receive every packet diverted to that port by pf(4). The pf syntax is pretty simple, e.g.: pass on em0 inet proto tcp from any to any port 80 divert-packet port 1 A lot of discussion have happened since my last commit that resulted in many changes and improvements. I would *really* like to thank everyone who took part in the discussion especially canacar@ who spotted out which are the limitations of this approach. OpenBSD divert(4) is meant to be compatible with software running on top of FreeBSD's divert sockets even though they are pretty different and will become even more with time. discusses with many, but mainly reyk@ canacar@ deraadt@ dlg@ claudio@ beck@ tested by reyk@ and myself ok reyk@ claudio@ beck@ manpage help and ok by jmc@
2009-09-27Minor bump for safety, due to the mips cachectl() addition.Miod Vallat
2009-09-27Add an implementation of IRIX-compatible cacheflush() routine to mips ports,Miod Vallat
needed for gcc -ftrampoline operation as well as by some third-party software. Although the implementation uses the sysarch() sysctl, the wrapper is added to libc as it was a direct system call (which it is on IRIX).
2009-09-10cvs log message from ed@freebsd, revision 197045:Jason McIntyre
Make the description of `b' a little better. If you have a one-byte sequence, `w', `b' is the second character. Not the third. Submitted by: Christoph Mallon checked by otto
2009-09-09maxzis -> maxsize; from Han BoetesJason McIntyre
2009-09-08I had not enough oks to commit this diff.Michele Marchetto
Sorry.
2009-09-08Add support for divert sockets. They allow you to:Michele Marchetto
- queue packets from pf(4) to a userspace application - reinject packets from the application into the kernel stack. The divert socket can be bound to a special "divert port" and will receive every packet diverted to that port by pf(4). The pf syntax is pretty simple, e.g.: pass on em0 inet proto tcp from any to any port 80 divert-packet port 8000 test, bugfix and ok by reyk@ manpage help and ok by jmc@ no objections from many others.
2009-09-02make getaddrinfo(3) accept numeric servname when ai_socktype is notFederico G. Schwindt
specified in hint or hints is NULL. claudio@ ok
2009-08-27Don't stop traversing a directory hierarchy if we reach SHRT_MAX,Todd C. Miller
just stop updating fts_level so we don't overflow it. This allows rm, find, etc to operate on very deep hierarchies. Consumers of fts(3) do need to be aware that the actual level may be larger than fts_level. During the next libc major bump we will make fts_level an int instead of a short. OK deraadt@
2009-08-20add SF_ARCHIVED. ok millert@, tedu@Martynas Venckus
2009-08-13various MLINK fixes from Alan R. S. Bueno;Jason McIntyre
2009-08-07define substitution in some cases might happen after prototypes areMartynas Venckus
already pulled; so manually substitute protos ensuring they will always be right; ok millert@
2009-07-15must include <sys/types.h> before including <login_cap.h> or <bsd_auth.h>;Ingo Schwarze
noticed by joao <salvatti at gmail dot com> on tech@; feedback and ok kettenis@ deraadt@ and reminded by jmc@
2009-07-13Load symbol address with dla, not la; good thing userland is still limitedMiod Vallat
to 2GB of vm space.
2009-07-12fwrite() should also return 0 if either size or nmemb are 0.Todd C. Miller
Adapted from FreeBSD. OK deraadt@
2009-07-09promote correct style for error checkingEric Faurot
ok tedu@ deraadt@ krw@
2009-06-23getgrouplist(3) used to and ought to return 0 on success;Ingo Schwarze
fixing a regression introduced in rev. 1.16 spotted by otto@; ok millert@ otto@
2009-06-21fix rcs ids. ok sthen@Martynas Venckus
2009-06-21abs conforms c99 -> imaxabs conforms c99. ok millert@Martynas Venckus
2009-06-12YP client functions do not allocate memory when they fail;Ingo Schwarze
wording tweaked by jmc@
2009-06-11don't use freelist if it overruns; use heap memory instead notMartynas Venckus
trying to allocate large blocks from bss memory pool in this case. problem reported by Maksymilian Arciemowicz. ok otto@, millert@
2009-06-09document KERN_BUFCACHEPERCENT and KERN_MAXLOCKSPERUID; help/ok ogaJason McIntyre
2009-06-08quieten compiler by converting pointers to uintptr_t before truncating themTheo de Raadt
to u_int32_t to do integer math with (in a situation where that is legit) ok otto millert
2009-06-07de-spaghetti:Ingo Schwarze
If code is used from exactly one place, don't jump back dozens of lines to reach it, only to "goto" back where you came from. Instead, simply put the code where it belongs. Also fixes a regression that crept in in rev. 1.30: After clearing the variable __ypmode, don't try to make decisions based on its former value. As a bonus, garbage collect the grname variable and the _ypmode enum type. ok millert@
2009-06-07fix a minor memory leak spotted by deraadt@; ok millert@ deraadt@Ingo Schwarze
2009-06-07Add KERN_FILE2 sysctl analogous to KERN_PROC2 but for file structures,Todd C. Miller
along with vnode type-specific info to make it more useful for fstat(1). OK deraadt@
2009-06-07Modify the uc_entries allocation check such that the lhs is a constant.Todd C. Miller
OK deraadt@
2009-06-07No need to malloc, copy, have a single read access, and free right away.Ingo Schwarze
Thus, garbage collect one variable, one strdup, one free, two ifs, one else and a couple of assignments. No functional change. ok millert@
2009-06-06In case of memory exhaustion, ypmatch_add may both leak memory and leaveIngo Schwarze
invalid data on the list, inviting later NULL pointer access. noticed by deraadt@, algorithm proposed by millert, implemented by me; feedback and ok millert@
2009-06-06correct error codes after malloc(3) failure, as 0 means RPC_SUCCESS;Ingo Schwarze
noticed by and OK deraadt@, ok millert@
2009-06-06use calloc() and realloc() more; ok schwarzeTheo de Raadt
2009-06-05Note that f_fsid gets cleared when caller is not the superuser. OK deraadt@Todd C. Miller
2009-06-05use calloc() to provide size * nitems safetyTheo de Raadt
2009-06-05use calloc() to provide size * nitems safety; ok millertTheo de Raadt
2009-06-05The yp_bind(3) return code now distinguishes "YP not active" from "an errorIngo Schwarze
occurred". Based on this, decide to either bail or use the record as is. Prevents getgrnam(3) and friends from silently skipping YP records on system errors, for example when out of memory. Also, calling yp_get_default_domain once is enough. The first two switch cases are unchanged, just reindented. ok millert@
2009-06-05malloc(3) failure should raise YPERR_RESRC, not YPERR_YPERR;Ingo Schwarze
ok millert@
2009-06-05improve yp_bind(3) error reporting after clnttcp_create(3) failure:Ingo Schwarze
map ECONNREFUSED -> YPERR_YPBIND, ENOMEM -> YPERR_RESRC, else YPERR_YPERR while here, malloc(3) failure should raise YPERR_RESRC, not YPERR_YPERR ok millert@
2009-06-05When parsing a line stating with "+" or "-" in group(5),Ingo Schwarze
check whether YP is active up front, not half-way through the parsing. This fixes the bug that group names starting with a dash (yuck!) were skipped when YP was not active, introduced in rev. 1.27. Besides, the code becomes easier to understand. The code inside the two switch cases is unchanged, just reindented. "looks good" millert@
2009-06-05An empty sting cannot be used as a YP domain name,Ingo Schwarze
so treat it similarly to a failing call to getdomainname. ok millert@
2009-06-05abort any time adjustment in progress if the clock is set with settimeofdayChris Kuethe
ok millert
2009-06-05compare and shift buffer against a fixed length not strlen derived values.Pierre-Yves Ritschard
ok otto@
2009-06-04simplify the 'family' option parser and make it more evident what we'rePierre-Yves Ritschard
now doing. ok deraadt@
2009-06-04Recycle four ancient fields in the disklabel structure, replacing them withTheo de Raadt
bounds information, ie. the zone of the disk that OpenBSD can use. Have each pre-disklabel parser (MBR, DPME, or per-arch MD disklabel parsers) figure out this area and pass it up to userland. Then, delete all the same disk parsing code from disklabel(8) since the kernel passes it up. Lots and lots of - signs in the disklabel(8) code. Tested on as many platforms as possible, the fallout will be repaired as time goes on. To test, use disklabel -d <drive> and validate that the bounds do not overlap any boot blocks. This same information is used by disklabel -A... OK for the concept from krw, miod, and drahn
2009-06-04fix two obvious typosIngo Schwarze
2009-06-04Don't assume that we can overwrite strings in the environment.Todd C. Miller
Someone may have passed a read-only string to putenv() (I'm looking at you cron!).
2009-06-04Add a resolv.conf option to specify the order in which getaddrinfoPierre-Yves Ritschard
PF_UNSPEC queries are made. While there change the default from inet6 first then inet4 to inet4 first then inet6, this prevents the many people with IPv4 only connectivity from constantly trying to contact IPv6 addresses, and also unbreaks many ports who don't use getaddrinfo right. ok deraadt@, plenty of cheering in the room wrt the idea, not loud enough complaining from the v6 crowd.