summaryrefslogtreecommitdiffstats
path: root/lib/libc
Commit message (Collapse)AuthorAgeFilesLines
...
* MFC 303164: Add more documentation regarding unsafe AIO requests.jhb2016-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)
* MFC r303046:pfg2016-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)
* MFC 302899: Add documentation for the sigevent structure.jhb2016-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)
* MFC: r302916bapt2016-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)
* fcntl(2): Document interrupt/restart for file locks.jilles2016-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)
* Fix a bad test resulting in a segfault with ISO-8859-5 localesbapt2016-07-031-1/+1
| | | | | Reported by: Lauri Tirkkonen from Illumos Approved by: re@ (gjb)
* Use on crypto.x and rpc.x from the source tree.bdrewery2016-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
* This commit addresses regression introduceded in r302177cy2016-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)
* Replace use of the pipe(2) system call with pipe2(2) with a zero flagsbrooks2016-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
* Fix regression from r301461.pfg2016-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
* libc/rpc: Make use of some xdr_* macros. (part 2)pfg2016-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.
* utimes(2),utime(3): Add deprecation in favour of utimensat(2) and futimens(2).jilles2016-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.
* libc/rpc: Make use of some xdr_* macros.pfg2016-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.
* Fix the rpcb_getaddr() definition to match its declaration.kevlo2016-06-091-1/+1
| | | | Submitted by: Sebastian Huber <sebastian dot huber at embedded-brains dot de>
* Implement an NSS backend for netgroups and add getnetgrent_r(3).markj2016-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
* Fix an infinite loop in setnetgrent(3) with NIS netgroups.markj2016-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
* Use a more common spelling for "(char *)0" in the getnetgrent man page.markj2016-06-091-2/+2
| | | | MFC after: 3 days
* Revert r301707ngie2016-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
* Use NULL instead of `0` in _ht_getnetbyname(..)ngie2016-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
* Test for strchr(3) returning NULL, not 0ngie2016-06-081-1/+1
| | | | | | MFC after: 3 days Reported by: coccinelle Sponsored by: EMC / Isilon Storage Division
* Update to a June 8th snapshot of (un)vis form NetBSD.brooks2016-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]
* Don't leak olinep if malloc() fails.truckman2016-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
* Don't leak addrinfo if ai->ai_addrlen <= minsiz test fails.truckman2016-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
* Introduce the PD_CLOEXEC for pdfork(2).oshogbo2016-06-081-1/+5
| | | | Reviewed by: mjg
* libc/locale: Fix type breakage in __collate_range_cmp().pfg2016-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)
* Reflect error indication according to POSIX and what those functionsache2016-06-051-2/+2
| | | | currently do.
* Fix markup.kib2016-06-041-1/+1
| | | | Sponsored by: The FreeBSD Foundation
* Improve errno documentation in pthread_create(3) and thr_new(2)vangyzen2016-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
* citrus: Remove redundant code in _citrus_esdb_get_list().pfg2016-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
* thr_*(2): Add xrefs to what libthr implements using each syscall.jilles2016-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.
* Document behavior of wait introduced in the r286698.oshogbo2016-06-011-1/+9
| | | | | | Suggested by: glebius Reviewed by: wblock, bjk Differential Revision: https://reviews.freebsd.org/D6080
* Don't use fixup for C99 and up, the compiler result is already correct.ache2016-06-014-0/+8
| | | | | | Suggested by: bde MFC after: 1 week
* For EILSEQ case in mbsnrtowcs() and wcsnrtombs() update src to point toache2016-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
* Fix prototype of dbm_open().ed2016-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
* Let dbm's datum::dptr use the right type.ed2016-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
* Fix the signature of the psignal() function.ed2016-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.
* Mark jail(2), and the sysctls that it (and only it) uses as deprecated.jamie2016-05-301-1/+1
| | | | jail(8) has long used jail_set(2), and those sysctl only cause confusion.
* Micro optimize: C standard guarantees that right shift for unsigned valueache2016-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
* _umtx_op(2): Note deprecation of UMTX_OP_MUTEX_WAKE.jilles2016-05-291-1/+15
|
* _umtx_op(2),thr_*(2): Various spelling, grammar and mdoc fixes.jilles2016-05-296-60/+73
|
* 1) Unifdef USE_WEAK_SEEDING since it is too obsolete to support and makesache2016-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
* 1) Unifdef USE_WEAK_SEEDING it is too obsolete to support and makes readingache2016-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
* Let l64a() properly null terminate its result.ed2016-05-261-22/+14
| | | | | | | | | | | | | | Though the buffer used by l64a() is initialized with null bytes, repetetive calls may end up having trailing garbage of previous invocations because we don't end up terminating the string. Instead of importing NetBSD's fix, use this opportunity to simplify this function dramatically, for example by just storing the Base64 character set in a string. There is also no need to do the bitmasking, as we can just use the proper integer type from <stdint.h>. MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D6511
* Do not generate code for sbrk syscall -- sbrk support was removed.br2016-05-251-0/+1
| | | | Pointed out by: andrew
* libc: regexec(3) adjustment.pfg2016-05-252-24/+50
| | | | | | | | | | | | | | | | | | | | | | Change the behavior of when REG_STARTEND is combined with REG_NOTBOL. From the original posting[1]: "Enable the assumption that pmatch[0].rm_so is a continuation offset to a string and allows us to do a proper assessment of the character in regards to it's word position ('^' or '\<'), without risking going into unallocated memory." This change makes us similar to how glibc handles REG_STARTEND | REG_NOTBOL, and is closely related to a soon-to-land fix to sed. Special thanks to Martijn van Duren and Ingo Schwarze for working out some consistent behaviour. Differential Revision: https://reviews.freebsd.org/D6257 Taken from: openbsd-tech 2016-05-24 [1] (Martijn van Duren) Relnotes: yes MFC after: 1 month
* Remove legacy brk and sbrk from RISC-V.br2016-05-254-161/+1
| | | | | | Discussed with: andrew Sponsored by: DARPA, AFRL Sponsored by: HEIF5
* Fix Coverity CID 1016714 Resource leak in process_file_actions_entry()truckman2016-05-251-3/+6
| | | | | | | | Don't leak a file descriptor of _dup2() fails (shouldn't happen). Reported by: Coverity CID: 1016714 MFC after: 1 week
* Fix 1016718 Resource leak.truckman2016-05-251-1/+3
| | | | | | | | Don't leak a file descriptor if fchdir() fails. Reported by: Coverity CID: 1016718 MFC after: 1 week
* Fix up r300385ngie2016-05-241-2/+3
| | | | | | | | | | | | | | I accidentally glossed over the fact that tmp is manipulated via strchr, so if we tried to free `tmp` after r300385, it would have crashed. Create a separate pointer (tmp2) to track the original allocation of `tmp`, and free `tmp2` if `p->nc_lookups` can't be malloced MFC after: 4 days X-MFC with: r300385 Reported by: Coverity CID: 1356026 Sponsored by: EMC / Isilon Storage Division
* Remove redundant NULLing of outbuf_pmapngie2016-05-241-1/+0
| | | | | | | | | If reallocf ever failed, outbuf_pmap would already be NULL MFC after: 1 week X-MFC with: r300620 Reported by: cem Sponsored by: EMC / Isilon Storage Division
OpenPOWER on IntegriCloud