summaryrefslogtreecommitdiffstats
path: root/lib/libc
Commit message (Collapse)AuthorAgeFilesLines
...
* Polish up iswctype_testngie2015-11-151-28/+50
| | | | | | | | | | - Split up the testcases into C locale and ja_JP.eucJP testcases. - Avoid a segfault in the event that setlocale fails, similar to r290843 - Replace `sizeof(x) / sizeof(*x)` pattern with `nitems(x)` MFC after: 1 week X-MFC with: r290532 Sponsored by: EMC / Isilon Storage Division
* Polish up the tests a bit more after projects/collation was merged to headngie2015-11-152-37/+77
| | | | | | | | | | | | | | | Provide more meaningful diagnostic messages if LC_CTYPE can't be set properly instead of segfaulting, because setlocale returns NULL and strcmp(NULL, b) will always segfault Split up the testcases so one failing (in this case en_US.ISO8859-15) won't cause the rest of the testcases to be skipped Remove some unused variables MFC after: 1 week X-MFC with: r290532 Sponsored by: EMC / Isilon Storage Division
* Fix the Indian numbering system (hi_IN.ISCII-DEV) testsngie2015-11-151-4/+4
| | | | | | Submitted by: ache X-MFC with: r290494 (if that ever happens) Sponsored by: EMC / Isilon Storage Division
* 1) Remove my overcomplicated error fallback and just return errorache2015-11-121-11/+3
| | | | | | | | | immediatelly as old code does, now for append modes too. Real use case for such fallback is impossible (unless specially crafted). 2) Remove now unneded include I forgot to remove in prev. commits. MFC after: 1 week
* Add missing licensing boilerplate to test-fnmatch.cngie2015-11-101-0/+25
| | | | | | | | Carry over licensing author info from fnmatch_test.c (jilles@) MFC after: 1 week X-MFC with: r290572 Sponsored by: EMC / Isilon Storage Division
* return "US-ASCII" instead of "POSIX" for "C" and "POSIX" localesbapt2015-11-101-1/+1
| | | | | as it used to be in previous version of the locales. Returning "POSIX" has too many fallouts.
* nl_langinfo: Simplify case ladderbapt2015-11-091-2/+0
| | | | | | | | The NONE:US-ASCII case isn't necessary. The "NONE:" case will handle US-ASCII, so let's remove the redundant handling. Submitted by: marino Obtained from: DragonflyBSD
* Readd ascii.c forgotten in r290618bapt2015-11-091-0/+192
|
* locales: Enforce US-ASCII encoding (limited to 7-bit)bapt2015-11-094-2/+7
| | | | | | | | | | | | | | The US-ASCII format was getting treated identically to POSIX. It is supposed to throw an ILSEQ errno if a value of 0x80 or greater is encountered, so let's bring back the "ASCII" handling. While here, change nl_codeset to return US-ASCII only when the encoding really is "US-ASCII". Before "C" and "POSIX" encoding returned this string, so now they return "POSIX". Discussed with: ache Submitted by: marino Obtained from: DragonflyBSD
* Integrate tools/regression/lib/libc/gen into the FreeBSD test suitengie2015-11-0910-1/+1666
| | | | | | | | | | | | | | | | | | | as lib/libc/tests/gen The code in test-fnmatch that was used for generating: - bin/sh/tests/builtins/case2.0 - bin/sh/tests/builtins/case3.0 has been left undisturbed. The target `make sh-tests` has been moved over from tools/regression/lib/libc/gen/Makefile to lib/libc/tests/gen/Makefile and made into a PHONY target case2.0 and case3.0 test input generation isn't being done automatically. This needs additional discussion. MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
* Fix some TAP -> ATF conversion errorsngie2015-11-091-6/+3
| | | | | | | | - Remove a leftover printf from when this was a TAP based testcase - Catch mmap failures properly MFC after: 3 days Sponsored by: EMC / Isilon Storage Division
* Integrate tools/regression/lib/libc/net into the FreeBSD test suitengie2015-11-085-8/+426
| | | | | | | | | | as lib/libc/tests/net Also, fix eui64_aton_test:test_str(..). The test was comparing the result of eui64_aton to a pointer of the expected result. MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
* Delete leftover printfs from when these were TAP testsngie2015-11-084-8/+0
| | | | | | MFC after: 1 week X-MFC with: r290532 Sponsored by: EMC / Isilon Storage Division
* Convert print_positional_test over to ATFngie2015-11-081-16/+40
| | | | | | | | Somehow missed in r290537 X-MFC with: r290537 MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
* Reorganize code to elimitate one _sseek() call for append modes.ache2015-11-081-21/+14
| | | | MFC after: 1 week
* printfloat_test and scanfloat_test need symbols from msun; these are ↵ngie2015-11-081-0/+6
| | | | | | | | | | | | automatically provided on amd64, but not i386. Add libm to DPADD/LDADD to unbreak the i386 tinderbox Pointyhat to: ngie MFC after: 1 week X-MFC with: r290538 Sponsored by: EMC / Isilon Storage Division
* Integrate tools/regression/lib/libc/string into the FreeBSD test suitengie2015-11-085-1/+554
| | | | | | | as lib/libc/tests/string MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
* Integrate tools/regression/lib/libc/stdlib into the FreeBSD test suitengie2015-11-085-2/+492
| | | | | | | | | | as lib/libc/tests/stdlib - Make the code a bit more style(9) compliant - Convert a sizeof(x)/sizeof(x[0]) to nitems MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
* Integrate tools/regression/lib/libc/stdio into the FreeBSD test suitengie2015-11-0814-23/+2613
| | | | | | | | | | | as lib/libc/tests/stdio - Fix some whitespace - Convert the testcases to ATF - Convert "/dev/null" to _PATH_DEVNULL MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
* Integrate tools/regression/lib/libc/locale into the FreeBSD test suitengie2015-11-0818-1/+2355
| | | | | | | as lib/libc/tests/locale MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
* Merge from head r290483bapt2015-11-0715-92/+76
|\
| * sdl->sdl_len in sockaddr_dl can be longer thanhrs2015-11-031-3/+13
| | | | | | | | sizeof(struct sockaddr_dl).
| * Add _test suffix to multiple tests in lib/libc to conform to the design notedngie2015-11-023-38/+38
| | | | | | | | | | | | | | in the FreeBSD Test Suite wiki MFC after: 3 days Sponsored by: EMC / Isilon Storage Division
| * Remove unused variable (SRCDIR)ngie2015-11-021-2/+0
| | | | | | | | | | MFC after: 3 days Sponsored by: EMC / Isilon Storage Division
| * Remove unnecessary `if (x)` tests before calling `free(x)`; free(3)ngie2015-11-0210-49/+25
| | | | | | | | | | | | | | already employs this check MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
* | Fix mbtowc not setting EILSEQ on an Incomplete multibyte sequence for eucJP ↵bapt2015-11-021-0/+1
| | | | | | | | encoding
* | Merge from headbapt2015-11-0117-103/+146
|\ \ | |/
| * Microoptimize.ache2015-11-011-4/+3
| |
| * Addition to prev. commit.ache2015-11-011-4/+6
| | | | | | | | | | | | | | In some edge cases fp->_p can be changed in _sseek(), recalculate. PR: 204156 MFC after: 1 week
| * Don't seek to the end if write buffer is empty (in append modes).ache2015-11-011-11/+12
| | | | | | | | | | PR: 204156 MFC after: 1 week
| * Not all targets support by clang have a tested or enabled ubsan yet.sbruno2015-10-301-0/+4
| | | | | | | | | | | | | | Only enable h_raw on x86 targets for today so that a buildworld runs to completion for clang enabled targets that are not x86. This should be removed when validation of the sanitizer has occured for all targets supported by FreeBSD and clang.
| * Disable h_raw/h_read with gccngie2015-10-301-2/+7
| | | | | | | | | | | | | | I forgot that these testcases fail with gcc 4.2.1; add a note to that effect MFC after: never Sponsored by: EMC / Isilon Storage Division
| * - Re-enable h_raw with clang 3.7.0+ngie2015-10-301-1/+2
| | | | | | | | | | | | | | | | - Fix the compiler check to allow the test to be compiled for gcc PR: 196430 MFC after: never Sponsored by: EMC / Isilon Storage Division
| * Remove a set but unused variable in __getgroupmembership to fix a gcc 4.9+ ↵ngie2015-10-301-2/+1
| | | | | | | | | | | | | | warning MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
| * Integrate contrib/netbsd-tests/lib/libc/rpc into the FreeBSD test suitengie2015-10-301-0/+1
| | | | | | | | | | | | | | | | | | | | as lib/libc/rpc This testcase requires rpcbind be up in running; otherwise the testcases will time out and be skipped MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
| * Use memmove(3) to avoid overlapping copy.bdrewery2015-10-291-1/+1
| | | | | | | | | | | | Reported by: valgrind MFC after: 2 weeks X-MFC-With: r290168
| * Fix several memory leaks, and crashes, in iconvlist(3).bdrewery2015-10-291-18/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Both curitem and curitem (via the names list) was always leaked. - malloc(3) failures lead to some leaks. - __bsd___iconv_get_list() failure lead to a crash since its error was not handles and __bsd___iconv_free_list() is not NULL-safe. I have slightly refactored this to avoid extra malloc and free logic in cases of malloc(3) failing. There are still bad assumptions here that I did not deal with. One of which is that the data will always have a '/' so the strchr(3) will not return NULL. Coverity CID: 1130055 1130054 1130053
| * Add _flags2 per jhb@ suggestion since no room left in _flags.ache2015-10-286-10/+7
| | | | | | | | | | | | Rewrite O_APPEND flag checking using new __S2OAP flag. MFC after: 3 weeks
| * According to POSIX, a write operation shall start at the current size ofache2015-10-251-0/+3
| | | | | | | | | | | | the stream (if mode had 'a' as the first character). MFC after: 1 week
| * Fix compiling with gcc [4.2.1] after r287797 when MK_HESOID == no andngie2015-10-252-13/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MK_NIS == no by converting `i` back to an int, and instead cast the loop comparison to `int` The loop comparison is iterating the len(ns_dtab)-1, because the last element is the sentinel tuple { NULL, NULL, NULL, }, so when both HESOID and NIS are off, len(ns_dtab)-1 == 1 - 1 == 0, and the loop is skipped because the expression is tautologically false While here, convert `(sizeof(x) / sizeof(x[0]))` to `nitems(x)` Tested with: clang 3.7.0, gcc 4.2.1, and gcc 4.9.4 [*] with MK_NIS={no,yes} and by running bash -lc 'id -u && id -g && id' * gcc 4.9.4 needs another patch in order for the compile to succeed with -Werror with lib/libc/gen/getgrent.c Reported by: jhibbits
| * Since no room left in the _flags, reuse __SALC for O_APPEND.ache2015-10-245-19/+31
| | | | | | | | | | | | | | It helps to remove _fcntl() call from _ftello() and optimize seek position calculation in _swrite(). MFC after: 3 weeks
| * resolver: abuse _res a little lessvangyzen2015-10-231-39/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the past, _res was a global variable. Now, it's multiple function calls. Several functions in the resolver use _res multiple times and therefore call the function(s) far more than necessary. Fix those callers to store the result of _res in a local variable. Add __noinline to the definition of res_init() to avoid the code bloat that these changes would have otherwise incurred. Thanks to jilles for noticing this. Reviewed by: jilles MFC after: 1 week Sponsored by: Dell Inc. Differential Revision: https://reviews.freebsd.org/D3887
| * Revert lib/libc/gen/dirname.3@r289695ngie2015-10-211-2/+0
| | | | | | | | This is why I use branches usually, not commit directly to head
| * Revert r289694ngie2015-10-211-0/+2
| | | | | | | | I committed some other undesirable local changes by accident
| * cpuset.9: Link to/from the new pagecem2015-10-202-4/+6
| | | | | | | | | | | | A follow-up to r289667. Sponsored by: EMC / Isilon Storage Division
| * Switch pl_child_pid from int to pid_t.jhb2015-10-201-2/+2
| | | | | | | | | | | | Reviewed by: emaste, kib MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D3857
* | locales: Fix eucJP sorting (broken upstream?)bapt2015-11-011-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Sorting eucJP text with "sort" resulted in an illegal sequence while "gsort" worked. This was traced back to mbrtowc handling which was broken for eucJP (probably eucCN, eucKR, and eucTW as well). This small fix took hours to figure out. The OR operation to build the wide character requires an unsigned character to work correctly. The euc wcrtowc conversion is probably broken upstream in Illumos as well. Triggered by: misc/freebsd-doc-ja in ports (encoded in eucJP) Submitted by: marino Obtained from: DragonflyBSD
* | libc: Fix (and improve) nl_langinfo (CODESET)bapt2015-11-012-9/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The output of "locale charmap" is identical to the result of nl_langinfo (CODESET) for any given locale. The logic for returning the codeset was very simplistic. It just returned portion of the locale name after the period (e.g. en_FR.ISO8859-1 returned "ISO8859-1"). When softlinks were added to locales, this broke. e.g.: en_US returned "" en_FR.UTF8 returned "UTF8" en_FR.UTF-8 returned "UTF-8" zh_Hant_HK.Big5HKSCS returned "Big5HKSCS" zh_Hant_TW.Big5 returned "Big5" es_ES@euro returned "" In order to fix this properly, the named locale cannot be used to determine the encoding. This information was almost available in the rune data. Unfortunately, all the single byte encodings were listed as "NONE" encoding. So I adjusted localedef tool to provide more information about the encoding. For example, instead of "NONE", the LC_CTYPE used by fr_FR.ISO8859-15 is now encoded as "NONE:ISO8859-15". The locale handlers now check if the first four characters of the encoding is "NONE" and if so, treats it as a single-byte encoding. The nl_langinfo handling of CODESET was adjusting accordingly. Now the following is returned: en_US returns "ISO8859-1" fr_FR.UTF8 returns "UTF-8" fr_FR.UTF-8 returns "UTF-8" zh_Hant_HK.Big5HKSCS returns "Big5" zh_Hant_TW.Big5 returns "Big5" es_ES@euro returns "ISO8859-15" as before, "C" and "POSIX" locales return "US-ASCII". This is a big improvement. The result of nl_langinfo can never be a zero-length string and it will always exclusively one of the values of the character maps of /usr/src/tools/tools/locale/etc/final-maps. Submitted by: marino Obtained from: DragonflyBSD
* | collate: Fix expansion substitions (broken upstream too)bapt2015-10-232-57/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Through testing, the user noted that some Cyrillic characters were not sorting correctly, and this was confirmed. After extensive testing and review, the localedef tool was eliminated as the culprit. The sustitutions were encoded correctly in LC_COLLATE. The error was mainly in wcscoll where character expansions were mishandled. The main directive pass routines had to be written to go back for a new collation value when the "state" variable was set. Before pointers were being advanced, the second lookup was gettting applied to the wrong character, etc. The "eat expansion codes" section on collate.c also had a bug. Later own, the "state" variable logic was changed to only set if next code was greater than zero (rather than >= 0). Some additional cleanups got captured from previous work: 1) The previous commit moved the binary search comment from the correct location to a wrong location because it's wrong upstream in Illumos. The comment has little value so I just removed it. 2) Don't check if pointers are null before freeing, this is redundant as free() handles null pointers. 3) The two binary search trees were standardized wrt initialization 4) On the binary search trees, a negative "high" exits rather than checking the table count again. Submitted by: marino Obtained from: DragonflyBSD
* | libc/collate: minor tweaks / fixbapt2015-10-221-27/+30
| | | | | | | | | | | | | | | | | | | | The main "fix" here is properly setting a collate loading error for each early return. Tweaks include removing unnecessary null checks, adding assertions (from Illumos) and a couple of variables to reduces code differences and improve readability. For normal use, there are no functional changes here. Obtained from: DragonflyBSD, Illumos
OpenPOWER on IntegriCloud