summaryrefslogtreecommitdiff
path: root/lib/libc
Commit message (Collapse)AuthorAgeFilesLines
* Merge r309688: address regressions in SA-16:37.libc.Gleb Smirnoff2016-12-071-6/+5
| | | | | | | | | PR: 215105 Submitted by: <jtd2004a sbcglobal.net> Approved by: so Notes: svn path=/releng/11.0/; revision=309692
* Fix possible login(1) argument injection in telnetd(8). [SA-16:36]Gleb Smirnoff2016-12-061-17/+34
| | | | | | | | | | | | | | | | | | | Fix link_ntoa(3) buffer overflow in libc. [SA-16:37] Fix possible escape from bhyve(8) virtual machine. [SA-16:38] Fix warnings about valid time zone abbreviations. [EN-16:19] Update timezone database information. [EN-16:20] Fix incorrectly defined unicode character(s). [EN-16:21] Security: FreeBSD-SA-16:36.telnetd Security: FreeBSD-SA-16:37.libc Security: FreeBSD-SA-16:38.bhyve Errata Notice: FreeBSD-EN-16:19.tzcode Errata Notice: FreeBSD-EN-16:20.tzdata Errata Notice: FreeBSD-EN-16:21.localedef Approved by: so Notes: svn path=/releng/11.0/; revision=309633
* MF11 304617: Fix various nits in the aio operation manpages.John Baldwin2016-08-224-26/+15
| | | | | | | | | | | | | | | | | | | | | | | - Avoid double use of "request" in a single sentence. Instead, describe aio_sigevent as being used to request notification of the associated operation's completion. This matches the language used to describe aio_sigevent in aio(4). - Simplify the prohibition on modifying buffers while requests are in flight. - Fix case mismatch. - Drop note about not using stack variables. C programmers should be able to figure out if a stack variable is safe based on the later warning about the life cycle requirements of control blocks. - Remove prohibition on modifying the I/O buffer for aio_fsync() since it does not use an I/O buffer. For aio_mlock(), prohibit modifications to the mapping (e.g. due to mprotect, munmap, mmap, etc.) but do not prohibit modifications to the memory backing the buffer (stores into the pages backing the buffer). Approved by: re (kib) Notes: svn path=/releng/11.0/; revision=304634
* MFC r303794:Konstantin Belousov2016-08-2210-2/+458
| | | | | | | | | | | | Create namespace for the symbols added during 12-CURRENT cycle. MFC r303795: Add __cxa_thread_atexit(3) API implementation. Approved by: re (gjb, bdrewery (?)) Notes: svn path=/releng/11.0/; revision=304592
* MFS r304512:Bryan Drewery2016-08-201-6/+0
| | | | | | | | | | | | MFC r304288: Garbage collect _umtx_lock(2)/_umtx_unlock(2) references removed in r263318. Approved by: re (gjb) Notes: svn path=/releng/11.0/; revision=304525
* MFC r303687:Bryan Drewery2016-08-081-0/+1
| | | | | | | | | Add link for getnetgrent_r(3). Approved by: re (kib) Notes: svn path=/stable/11/; revision=303853
* MFC r303486:Ed Schouten2016-08-052-7/+16
| | | | | | | | | | | | | Mention that basename(3) and dirname(3) will change in the future. Update the existing manual pages for basename(3) and dirname(3) to mention that in future versions of FreeBSD, these functions will no longer use internal buffers for storing the results. Approved by: re@ Notes: svn path=/stable/11/; revision=303762
* MFC r303104, r303106:Brooks Davis2016-08-031-2/+21
| | | | | | | | | | | | | | | | | | | | | Update to reflect the fact that pipe() is a wrapper around the pipe2() system call. Reviewed by: jhb, wblock Sponsored by: DAPRA, AFRL Change wording to use function rather than system call in the description as well. Authored by: zeising Reviewed by: brooks Approved by: re (gjb) Sponsored by: DAPRA, AFRL Notes: svn path=/stable/11/; revision=303717
* MFC 303164: Add more documentation regarding unsafe AIO requests.John Baldwin2016-07-284-20/+16
| | | | | | | | | | | | | | | | | | | | | | | | The asynchronous I/O changes made previously result in different behavior out of the box. Previously all AIO requests failed with ENOSYS / SIGSYS unless aio.ko was explicitly loaded. Now, some AIO requests complete and others ("unsafe" requests) fail with EOPNOTSUPP. Reword the introductory paragraph in aio(4) to add a general description of AIO before describing the vfs.aio.enable_unsafe sysctl. Remove the ENOSYS error description from aio_fsync(2), aio_read(2), and aio_write(2) and replace it with a description of EOPNOTSUPP. Remove the ENOSYS error description from aio_mlock(2). Log a message to the system log the first time a process requests an "unsafe" AIO request that fails with EOPNOTSUPP. This is modeled on the log message used for processes using the legacy pty devices. Approved by: re (gjb) Notes: svn path=/stable/11/; revision=303460
* MFC r303046:Pedro F. Giffuni2016-07-261-12/+12
| | | | | | | | | | | | | | | | | libc: tag the rune initialization function prototypes visibility as hidden. It is good practice to export as few symbols as possible from your shared libraries, so use the GCC visibility attribute in this case, matching what Apple's libc does. Reference: https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/Articles/SymbolVisibility.html Hinted by: Apple's libc 1082.20.4 Approved by: re (gjb) Notes: svn path=/stable/11/; revision=303336
* MFC 302899: Add documentation for the sigevent structure.John Baldwin2016-07-257-22/+175
| | | | | | | | | | | | | | | - Add a sigevent(3) manpage to give a general overview of the sigevent structure and the available notification mechanisms. - Document that AIO requests contain a nested sigevent structure that can be used to request completion notification. - Expand the sigevent details in other manuals to note details such as the extra values stored in a queued signal's information or in a posted kevent. Approved by: re (gjb) Notes: svn path=/stable/11/; revision=303324
* MFC: r302916Baptiste Daroussin2016-07-201-1/+5
| | | | | | | | | | | | Revert 302324 and properly fix the crash with ISO-8859-5 locales PR: 211135 Reported by: jkim Tested by: jkim Approved by: re (gjb) Notes: svn path=/stable/11/; revision=303112
* fcntl(2): Document interrupt/restart for file locks.Jilles Tjoelker2016-07-071-1/+22
| | | | | | | | | | | | | | | | Since r302216, thread suspension causes advisory file locks to restart (instead of continuing to wait) and for a long time SA_RESTART has affected advisory file locks. These are both not compliant to POSIX.1. To clarify that restarting means something, add a paragraph about fair queuing. Note that the network lock manager does not implement fair queuing. Reviewed by: kib (previous version) Approved by: re (gjb) Notes: svn path=/head/; revision=302401
* Fix a bad test resulting in a segfault with ISO-8859-5 localesBaptiste Daroussin2016-07-031-1/+1
| | | | | | | | Reported by: Lauri Tirkkonen from Illumos Approved by: re@ (gjb) Notes: svn path=/head/; revision=302324
* Use on crypto.x and rpc.x from the source tree.Bryan Drewery2016-06-282-2/+2
| | | | | | | | | | | | This fixes the build when DESTDIR may be blank or not yet populated. It also fixes reproducibility. Submitted by: brooks Approved by: re (gjb) Differential Revision: https://reviews.freebsd.org/D6455 Notes: svn path=/head/; revision=302255
* This commit addresses regression introduceded in r302177Cy Schubert2016-06-281-0/+14
| | | | | | | | | | | (WITH_SYSTEM_COMPILER: Enable by default) and it's prerequisite: r300354, caused i386 builds to fail when cross-built on an amd64 host. Reviewed by: bdrewery, delphij, gjb Approved by: re (gjb) Notes: svn path=/head/; revision=302246
* Replace use of the pipe(2) system call with pipe2(2) with a zero flagsBrooks Davis2016-06-2220-457/+29
| | | | | | | | | | | | | | | | | | | value. This eliminates the need for machine dependant assembly wrappers for pipe(2). It also make passing an invalid address to pipe(2) return EFAULT rather than triggering a segfault. Document this behavior (which was already true for pipe2(2), but undocumented). Reviewed by: andrew Approved by: re (gjb) Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D6815 Notes: svn path=/head/; revision=302092
* Fix regression from r301461.Pedro F. Giffuni2016-06-101-3/+3
| | | | | | | | | | | | | | | The fix to the __collate_range_cmp() ABI breakage missed some replacements in libc's vfscanf(). Replace them with __wcollate_range_cmp() which does what is expected. This was breaking applications like xterm and pidgin when using wide characters. Reported by: Vitalij Satanivskij Approved by: re Notes: svn path=/head/; revision=301777
* libc/rpc: Make use of some xdr_* macros. (part 2)Pedro F. Giffuni2016-06-093-19/+19
| | | | | | | | | xdr_rpcproc, xdr_rpcprog and xdr_rpcvers were broken in older versions of FreeBSD but fixed in r296394. Give them some use hoping they help make the code somewhat more readable. Notes: svn path=/head/; revision=301769
* utimes(2),utime(3): Add deprecation in favour of utimensat(2) and futimens(2).Jilles Tjoelker2016-06-092-4/+19
| | | | | | | | | | Setting time by seconds or microseconds may cause unexpected effects especially if sysctl vfs.timestamp_precision=3 (not default). Calling the obsolete functions with NULL timestamps is acceptable. Notes: svn path=/head/; revision=301768
* libc/rpc: Make use of some xdr_* macros.Pedro F. Giffuni2016-06-092-7/+7
| | | | | | | | | xdr_rpcprog and xdr_rpcvers were broken in older versions of FreeBSD but were fixed in r296394. Give them some use hoping they help make the code somewhat more readable. Notes: svn path=/head/; revision=301754
* Fix the rpcb_getaddr() definition to match its declaration.Kevin Lo2016-06-091-1/+1
| | | | | | | Submitted by: Sebastian Huber <sebastian dot huber at embedded-brains dot de> Notes: svn path=/head/; revision=301734
* Implement an NSS backend for netgroups and add getnetgrent_r(3).Mark Johnston2016-06-093-115/+470
| | | | | | | | | | | | | | | | | | | | | This support appears to have been documented in nsswitch.conf(5) for some time. The implementation adds two NSS netgroup providers to libc. The default, compat, provides the behaviour documented in netgroup(5), so this change does not make any user-visible behaviour changes. A files provider is also implemented. innetgr(3) is implemented as an optional NSS method so that providers such as NIS which are able to implement efficient reverse lookup can do so. A fallback implementation is used otherwise. getnetgrent_r(3) is added for convenience and to provide compatibility with glibc and Solaris. With a small patch to net/nss_ldap, it's possible to specify an ldap netgroup provider, allowing one to query nisNetgroupTriple entries. Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=301711
* Fix an infinite loop in setnetgrent(3) with NIS netgroups.Mark Johnston2016-06-091-0/+4
| | | | | | | | | | | | | Handle an empty result from yp_match() by returning NULL, which is consistent with the handling of an empty netgroup in /etc/netgroup. setnetgrent(3) has no return value, so there is no particular need to distinguish this case from an error. PR: 26486 MFC after: 2 weeks Notes: svn path=/head/; revision=301710
* Use a more common spelling for "(char *)0" in the getnetgrent man page.Mark Johnston2016-06-091-2/+2
| | | | | | | MFC after: 3 days Notes: svn path=/head/; revision=301709
* Revert r301707Enji Cooper2016-06-081-2/+2
| | | | | | | | | | | | getnetent_p doesn't return NULL like getnetent does. coccinelle got confused and I didn't verify that it worked before committing the change MFC after: 1 week X-MFC with: r301707 Pointyhat to: ngie Notes: svn path=/head/; revision=301708
* Use NULL instead of `0` in _ht_getnetbyname(..)Enji Cooper2016-06-081-2/+2
| | | | | | | | | | | - getnetent returns NULL on completion/error. - .h_aliases is NULL terminated. MFC after: 1 week Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=301707
* Test for strchr(3) returning NULL, not 0Enji Cooper2016-06-081-1/+1
| | | | | | | | | MFC after: 3 days Reported by: coccinelle Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=301704
* Update to a June 8th snapshot of (un)vis form NetBSD.Brooks Davis2016-06-081-0/+1
| | | | | | | | | | | | | This adds stravis() and some new encoding flags VIS_SHELL, VIS_META, and VIS_NOLOCALE. Assorted cleanups and fixes includeing a manpage typo[0]. PR: 210013 [0] Submitted by: pi [0] Notes: svn path=/head/; revision=301679
* Don't leak olinep if malloc() fails.Don Lewis2016-06-081-0/+2
| | | | | | | | | | | | | | If malloc() fails to allocate linep, then free olinep (if it exists) before returning to avoid a memory leak. Reported by: Coverity CID: 1016716 Reviewed by: kib MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D6755 Notes: svn path=/head/; revision=301596
* Don't leak addrinfo if ai->ai_addrlen <= minsiz test fails.Don Lewis2016-06-081-12/+13
| | | | | | | | | | | | | | | | | If the ai->ai_addrlen <= minsiz test fails, then freeaddrinfo() does not get called to free the memory just allocated by getaddrinfo(). Fix by moving ai->ai_addrlen <= minsiz to a separate nested if block, and keep freeaddrinfo() in the outer block so that freeaddrinfo() will be called whenever getaddrinfo() succeeds. Reported by: Coverity CID: 1273652 Reviewed by: ume MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D6756 Notes: svn path=/head/; revision=301592
* Introduce the PD_CLOEXEC for pdfork(2).Mariusz Zaborski2016-06-081-1/+5
| | | | | | | Reviewed by: mjg Notes: svn path=/head/; revision=301573
* libc/locale: Fix type breakage in __collate_range_cmp().Pedro F. Giffuni2016-06-055-11/+25
| | | | | | | | | | | | | | | | | | | When collation support was brought in, the second and third arguments in __collate_range_cmp() were changed from int to wchar_t, breaking the ABI. Change them to a "char" type which makes more sense and keeps the ABI compatible. Also introduce __wcollate_range_cmp() which does work with wide characters. This function is used only internally in libc so we don't export it. Use the new function in glob(3), fnmatch(3), and regexec(3). PR: 179721 Suggested by: ache. jilles MFC after: 3 weeks (perhaps partial only) Notes: svn path=/head/; revision=301461
* Reflect error indication according to POSIX and what those functionsAndrey A. Chernov2016-06-051-2/+2
| | | | | | | currently do. Notes: svn path=/head/; revision=301448
* Fix markup.Konstantin Belousov2016-06-041-1/+1
| | | | | | | Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=301412
* Improve errno documentation in pthread_create(3) and thr_new(2)Eric van Gyzen2016-06-032-4/+11
| | | | | | | | | | | | | Add some missing errno values to thr_new(2) and pthread_create(3). In particular, EDEADLK was not documented in the latter. While I'm here, improve some English and cross-references. Reviewed by: kib Sponsored by: Dell Inc. Differential Revision: https://reviews.freebsd.org/D6663 Notes: svn path=/head/; revision=301274
* citrus: Remove redundant code in _citrus_esdb_get_list().Pedro F. Giffuni2016-06-021-12/+6
| | | | | | | | | | | It appears "sorted" may have not been implemented. Sorted or not, we always follow the same action so simplify the code. Leave a note for future generations. CID: 1347084 Notes: svn path=/head/; revision=301215
* thr_*(2): Add xrefs to what libthr implements using each syscall.Jilles Tjoelker2016-06-015-8/+29
| | | | | | | | | | | | | | Add text to thr_exit(2) and thr_new(2) discouraging their use in applications since calling these in a process with libthr loaded will confuse libthr and is likely to cause hangs or crashes. The thr_kill2(2) call is not used by libthr and may be useful in special applications. The other calls can be used in applications but it should not be necessary. Notes: svn path=/head/; revision=301171
* Document behavior of wait introduced in the r286698.Mariusz Zaborski2016-06-011-1/+9
| | | | | | | | | Suggested by: glebius Reviewed by: wblock, bjk Differential Revision: https://reviews.freebsd.org/D6080 Notes: svn path=/head/; revision=301159
* Don't use fixup for C99 and up, the compiler result is already correct.Andrey A. Chernov2016-06-014-0/+8
| | | | | | | | | Suggested by: bde MFC after: 1 week Notes: svn path=/head/; revision=301115
* For EILSEQ case in mbsnrtowcs() and wcsnrtombs() update src to point toAndrey A. Chernov2016-05-312-0/+3
| | | | | | | | | | | the character after the one this conversion stopped at. PR: 209907 Submitted by: Roel Standaert <roel@abittechnical.com> (partially) MFC after: 3 days Notes: svn path=/head/; revision=301069
* Fix prototype of dbm_open().Ed Schouten2016-05-312-2/+2
| | | | | | | | | | | The last argument of dbm_open() should be a mode_t according to POSIX; not an int. Reviewed by: pfg, kib Differential Revision: https://reviews.freebsd.org/D6650 Notes: svn path=/head/; revision=301066
* Let dbm's datum::dptr use the right type.Ed Schouten2016-05-301-2/+2
| | | | | | | | | | | | According to POSIX, it should use void *, not char *. Unfortunately, the dsize field also has the wrong type. It should be size_t. I'm not going to change that, as that will break the ABI. Reviewed by: pfg Differential Revision: https://reviews.freebsd.org/D6647 Notes: svn path=/head/; revision=300999
* Fix the signature of the psignal() function.Ed Schouten2016-05-302-4/+4
| | | | | | | | | | | POSIX 2008 added the psignal() function which has already been part of the BSDs for a long time. The only difference is, the POSIX version uses an 'int' for the signal number, unlike our version which uses an 'unsigned int'. Fix up the function to use an 'int'. This should not affect the ABI. Notes: svn path=/head/; revision=300997
* Mark jail(2), and the sysctls that it (and only it) uses as deprecated.Jamie Gritton2016-05-301-1/+1
| | | | | | | jail(8) has long used jail_set(2), and those sysctl only cause confusion. Notes: svn path=/head/; revision=300983
* Micro optimize: C standard guarantees that right shift for unsigned valueAndrey A. Chernov2016-05-291-1/+1
| | | | | | | | | | fills left bits with zero, and we have exact 32bit unsigned value (uint32_t), so there is no reason to add "& 0x7fffffff" here. MFC after: 1 week Notes: svn path=/head/; revision=300965
* _umtx_op(2): Note deprecation of UMTX_OP_MUTEX_WAKE.Jilles Tjoelker2016-05-291-1/+15
| | | | Notes: svn path=/head/; revision=300958
* _umtx_op(2),thr_*(2): Various spelling, grammar and mdoc fixes.Jilles Tjoelker2016-05-296-60/+73
| | | | Notes: svn path=/head/; revision=300957
* 1) Unifdef USE_WEAK_SEEDING since it is too obsolete to support and makesAndrey A. Chernov2016-05-291-41/+11
| | | | | | | | | | | | | | | | reading hard. 2) Instead of doing range transformation in each and every function here, do it single time directly in do_rand(). One "mod" operation overhead is not a big deal, but the code looks nicer and possible future functions additions or PRNG change do not miss range transformations neither have unneeded ones. 3) Use POSIX argument types for visible functions (cosmetic). MFC after: 1 week Notes: svn path=/head/; revision=300956
* 1) Unifdef USE_WEAK_SEEDING it is too obsolete to support and makes readingAndrey A. Chernov2016-05-291-46/+14
| | | | | | | | | | | | | | | | harder. 2) ACM paper require seed to be in [1, 2^31-2] range, so use the same range shifting as already done for rand(3). Also protect srandomdev() + TYPE_0 case (non default) from negative seeds. 3) Don't check for valid "type" range in setstate(), it is always valid as calculated. Instead add a check that rear pointer not exceeed end pointer. MFC after: 1 week Notes: svn path=/head/; revision=300953