7243 Commits

Author SHA1 Message Date
pfg
99efb6c39e MFC r267627:
strptime: add support for %t and %n

Posix strptime() requires support for %t and %n, which were added
to the illumos port.  Curiously we were skipping white spaces by
default in most other cases making %t meaningless.

We now skip spaces in the case of the %e specifier as strftime(3)
explicitly adds a space for the single digit case.

Reference:
http://pubs.opengroup.org/onlinepubs/009695399/functions/strptime.html

PR:		173421
Obtained from:	Illumos (Rev. a11c1571b6942161b0186d0588609448066892c2)
2014-06-30 14:52:40 +00:00
pluknet
b39fb82c62 MFC r261140:
Add MLINK for fdclosedir.3 to directory.3 and sort fdopendir(3) entry.
2014-06-27 09:11:24 +00:00
kib
15d33955d2 MFC r267630:
Add MAP_EXCL flag for mmap(2).
2014-06-26 08:30:08 +00:00
kib
b371ec04aa MFC r267629:
Tidy up code of the wrapper.
2014-06-26 08:27:01 +00:00
ume
ec8b74659a MFC r267616, 267640:
Retooling addrconfig() to exclude addresses on loopback interfaces
when looking for configured addresses.
This change is based upon the code from the submitter, and made
following changes:
- Exclude addresses assigned on interfaces which are down, like NetBSD
  does.
- Exclude addresses assigned on interfaces which are ifdisabled.

Use SOCK_CLOEXEC.

PR:		190824
Submitted by:	Justin McOmie
2014-06-25 17:10:26 +00:00
pfg
f1ff231dba MFC r267601:
stdtime: style(9) fixes.

Obtained from:	illumos
2014-06-23 15:03:51 +00:00
pfg
fac80b6943 MFC r267544:
Update license to strptime(3) implementation.

Our strptime(3) implementation was the base for the illumos
implementation and after contacting the author, Kevin Rudy
stated the code is under a 2-Clause BSD License [1]

After reviewing our local changes to the file in question,
the FreeBSD Foundation has agreed that their contributions
to this file are not required to carry clause 3 or 4 so
the file can be relicensed as in Illumos [2].

References:

[1] https://www.illumos.org/issues/357
[2] Illumos Revision:		13222:02526851ba75

Approved:	core (jhb)
Approved:	FreeBSD Foundation (emaste)
2014-06-20 15:43:58 +00:00
tijl
de4e2206d5 MFC r267436-267439:
- Replace malloc+memset with calloc.
- iconv_open(3): initialise ci_ilseq_invalid field of _citrus_iconv_shared
  struct after allocation with malloc.
- iconvlist(3): reduce a memory leak by copying strings only once.
- iconv(1):
  - Make invalids variable local to do_conv such that it prints the number
    of invalid characters of the current file instead of an accumulated
    value.
  - Make do_conv return an error when invalid characters have been found.
    Return EXIT_FAILURE from main if any file contained invalid characters.
    This matches the behaviour of GNU iconv.
  - Mark usage with __dead2 attribute.
  - Make the long_options array const.

Tested by:	Pavel Timofeev <timp87@gmail.com>
2014-06-20 07:32:03 +00:00
pfg
b890481de0 MFC r266865;
Fix strcasecmp_l() and strncasecmp_l() POSIX 2008 compliance.

POSIX.1-2008 specifies that those two functions should be declared by
including <strings.h>, not <string.h> (the latter only has strcoll_l()
and strxfrm_l()):

http://pubs.opengroup.org/onlinepubs/9699919799/functions/strcasecmp.html

Bump __FreeBSD_version for ports that may be using the non-standard
reference.

Obtained from:	DragonFlyBSD
Reviewed by:	theraven
2014-06-14 02:57:40 +00:00
nwhitehorn
dc45432cd4 MFC r260913,266895:
Add a new flag to /etc/ttys: onifconsole. This is equivalent to "on" if the
device is an active kernel console and "off" otherwise. This is designed to
allow serial-booting x86 systems to provide a login prompt on the serial line
by default without providing one on all systems by default. Set this flag
on x86 systems for ttyu0.

Comments and suggestions by:	grehan, dteske, jilles
2014-06-08 17:50:07 +00:00
jilles
83925746a3 MFC r264417: realpath(): Properly fail "." or ".." components after
non-directories.

If realpath() is called on pathnames like "/dev/null/." or "/dev/null/..",
it should fail with [ENOTDIR]. Pathnames like "/dev/null/" already failed as
they should.

Also, put the check for non-directories after lstatting the previous
component instead of when the empty component (consecutive or trailing
slashes) is detected, saving an lstat() call and some lines of code.

PR:		82980
2014-06-06 13:37:40 +00:00
bjk
5eb02565b3 MFC r266285,266866:
------------------------------------------------------------------------
    r266285 | bjk | 2014-05-16 23:05:52 -0400 (Fri, 16 May 2014) | 9 lines

    Correct documentation of the limit on how much memory can be mlock()ed

    vm.max_wired is a system-wide limit, not per-process.  Reword the
    section to make this more clear.

    PR:             docs/189214
    Submitted by:   Lawrence Chen (original text)
    Approved by:    hrs (mentor)

    ------------------------------------------------------------------------
    r266866 | bjk | 2014-05-29 22:16:28 -0400 (Thu, 29 May 2014) | 5 lines

    Minor mdoc fix

    Submitted by:   hrs
    Approved by:    hrs (mentor, implicit)

    ------------------------------------------------------------------------

PR:		docs/189214
Approved by:	hrs (mentor)
2014-06-01 18:41:33 +00:00
pho
a3e5dd5421 MFC r265534:
msync(2) must return ENOMEM and not EINVAL when the address is outside the
allowed range or when one or more pages are not mapped. This according to
The Open Group Base Specifications Issue 7.

Sponsored by:	EMC / Isilon storage division
2014-05-21 09:19:05 +00:00
ian
05acb76bb3 MFC 265059: Set the new floating point exception mask correctly. 2014-05-17 23:20:29 +00:00
ian
fd20bf61ea MFC 264696, 264721,
Add the deprecated fp{get,set}* functions, a few ports use them.

  Rename the fp{get,set}* files so they no longer conflict with the
  softfloat version of these files.
2014-05-17 22:19:16 +00:00
ian
1253f26158 MFC 263631, 263637, 263664, 263676, 263679, 263698, 263711,
Implement __flt_rounds for ARMv6 hard-float. The fpscr register stores the
  current rounding mode used by the VFP unit.

  Simplify how we build MACHINE_ARCH. There are 3 options that may be set
  however only arm, armeb, armv6, and soon armv6hf will be used.

  Add the llvm/clang patch for r263619.

  Reorder the pmap macros so "ARM_MMU_V6 + ARM_MMU_V7" is first. As they are
  identical this allows us to build for both v6 and v7 together.

  Add code for enabling second CPU core for A20 SoC.
  Enable SMP on Cubieboard2.

  Switch to freebsd.org emal address in copyright.
2014-05-17 18:53:36 +00:00
ian
ad5edf36f1 MFC 262989, 263210, 263230, 263231, 263239, 263242, 263243,
Export _libc_arm_fpu_present as a private symbol to be used by other
  system libraries, for example libm.

  On armv6 access both the softfloat and, when available, the vfp to get and
  set the floating-point environment.

  Build fenv-vfp.c with the softfp float abi. Without this gcc generates an
  incorrect assembly file that doesn't allow for vfp instructions.

  Only build the vfp/softfp switching code on armv6 as we don't support vfp
  on anything earlier than this. This should fix the armeb and arm builds
  when using gcc.

  Add an optimised version of the float and double helper functions.
2014-05-17 14:22:37 +00:00
kib
de734013ee MFC r265847:
Fix sem_unlink(3) to properly invalidate the semaphores name cache.

PR:	standards/189353
2014-05-17 11:43:14 +00:00
kib
0bc598bf79 MFC r265845:
Style.
2014-05-17 11:38:26 +00:00
brueffer
0e330f2d70 MFC: r265238, r265240
Properly free resources in case of error.

CID:		1007032
Found with:	Coverity Prevent(tm)
2014-05-16 15:48:45 +00:00
kevlo
69da76e9e5 MFC r264212,r264213,r264248,r265776,r265811,r265909:
- Add support for UDP-Lite protocol (RFC 3828) to IPv4 and IPv6 stacks.
  Tested with vlc and a test suite [1].
  [1] http://www.erg.abdn.ac.uk/~gerrit/udp-lite/files/udplite_linux.tar.gz

  Reviewed by:	jhb, glebius, adrian

- Fix a logic bug which prevented the sending of UDP packet with 0 checksum.

- Disable TX checksum offload for UDP-Lite completely. It wasn't used for
  partial checksum coverage, but even for full checksum coverage it doesn't
  work.
2014-05-13 06:05:53 +00:00
pfg
f3f247f508 MFC r265202:
Remove some unreachable breaks in regex.

This is based on a much bigger cleanup done in Illumos.

Reference:
https://www.illumos.org/issues/2077
2014-05-09 01:20:39 +00:00
pfg
9fe5eca952 MFC r265095, r265167;
citrus: Avoid invalid code points.

The UTF-8 decoder should not accept byte sequences which decode to
unicode code positions U+D800 to U+DFFF (UTF-16 surrogates).[1]

Contrary to the original OpenBSD patch, we do pass U+FFFE and U+FFFF,
both values are valid "non-characters" [2] and must be mapped through
UTFs.

[1] http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
[2] http://www.unicode.org/faq/private_use.html

Reported by:	Stefan Sperling [1]
Thanks to:	jilles [2]
Obtained from:	OpenBSD
2014-05-05 14:50:53 +00:00
brueffer
031977611b MFC: r264507
Mention Capsicum.
2014-04-23 12:11:14 +00:00
jmmv
8181a88b7a MFC r263090: Make ether_line really report an error when all input is invalid. 2014-04-17 11:49:19 +00:00
tijl
1cbbe6f2d4 MFC r263986:
- In the libiconv module for ISO 2022 restore the original order of the
  fields of a private struct such that variables of this type are
  initialised correctly.  Fixes conversion from ISO 2022.
  Also do this in the BIG5 module to prevent similar errors in the future.
- In the libiconv module for EUC-TW replace 2^cs with 1<<cs.  Fixes
  conversion from EUC-TW.
- Synchronise iconv code with NetBSD.  In most cases this only updates
  the RCS id because the changes are already there or are NetBSD specific.
  + libc/iconv/citrus_csmapper.c: Add a comment.
  + libc/iconv/citrus_db_factory.c: Remove put16().
  + libc/iconv/citrus_iconv.c: Return EINVAL on error.
  + libc/iconv/citrus_mapper.c: Return EINVAL on error.
  + libc/iconv/citrus_memstream.c: Fix type of a variable.
  + libc/iconv/citrus_prop.h: Sync definition of _CITRUS_PROP_HINT_END.
  + libc/iconv/citrus_stdenc.c: Return EINVAL on error.
  + libiconv_modules/mapper_std/citrus_mapper_std.c: Plug memory leak.

Obtained from:	NetBSD
2014-04-15 09:49:44 +00:00
jilles
a3f8ed8103 MFC r262872: fts: Don't abort if an empty pathname is given.
Make fts_open(3) treat an empty pathname like any other pathname that cannot
be lstatted because of [ENOENT].

It is rather confusing if  rm -rf file1 "" file2  does not remove file1 and
file2.

PR:		bin/187264
2014-04-05 20:26:17 +00:00
jilles
15366d2a0d MFC r258794: chmod(2): Document S_ISVTX following SUSv3/SUSv4.
S_ISTXT is non-standard.

While here, also update fchmodat() standards entry to POSIX.1-2008.
2014-04-05 20:11:40 +00:00
jilles
738573dde6 waitid(2): Do not tell userland programmers to include <sys/signal.h>.
Userland should get these definitions by including <signal.h>.
2014-04-05 20:09:51 +00:00
dim
fb422e6d31 MFC r262613:
Merge the projects/clang-sparc64 branch back to head.  This brings in
several updates from the llvm and clang trunks to make the sparc64
backend fully functional.

Apart from one patch to sys/sparc64/include/pcpu.h which is still under
discussion, this makes it possible to let clang fully build world and
kernel for sparc64.

Any assistance with testing this on actual sparc64 hardware is greatly
appreciated, as there will unavoidably be bugs left.

Many thanks go to Roman Divacky for his upstream work on getting the
sparc64 backend into shape.

MFC r262985:

Repair a few minor mismerges from r262261 in the clang-sparc64 project
branch.  This is also to minimize differences with upstream.
2014-03-26 07:31:57 +00:00
davidxu
fedd035484 MFC r263107:
To avoid missing a chance to cancel thread, call _pthread_testcancel at the
beginning of _sem_timedwait.

Submitted by:	Eric van Gyzen &lt; eric at vangyzen dot net &gt;
2014-03-17 05:03:53 +00:00
eadler
4ff78f8cbc MFC r262890:
libc man pages: Remove reference to non-existent FreeBSD Security
	Architecture
2014-03-10 00:53:37 +00:00
jilles
a48226bb43 MFC r261859: fts: Fix double-free with conflicting concurrent modifications.
If rare conditions such as concurrent conflicting manipulation of the
filesystem occur, fts_read() frees the current FTSENT without adjusting
the pointers in the FTS accordingly. A later fts_close() then frees the
same FTSENT again.
2014-03-07 16:43:08 +00:00
tijl
64a908c935 MFC r262441-262442,262447,262461-262464,262655:
- Consistently pass around context information using a simple pointer.
  This fixes some dereferencing bugs in Chinese character set conversions.
- Fix Simplified Chinese character set conversions by switching around the
  fields of an internal struct so it corresponds with the way variables of
  this type are initialised.
- Fix an array index out of bounds bug in iconv VIQR (Vietnamese) module.
- Silence gcc warning about unsigned comparison with 0.

Also record r258316 and r258587 as merged so they no longer show up as
eligible.

PR:		185964
Submitted by:	Manuel Mausz <manuel-freebsd@mausz.at>
2014-03-04 11:43:01 +00:00
brueffer
691ab829cc MFC: r262296
Match the correct variable to the variable description.

PR:		121173
Submitted by:	Thomas Mueller <tmueller at sysgo.com>
2014-02-28 00:43:27 +00:00
brueffer
abe08fc946 MFC: r261447
Fix a typo.
2014-02-10 22:16:22 +00:00
kib
ce48f3b35d MFC r261080:
The posix_fallocate(2) syscall should return error number on error,
without modifying errno.

MFC r261290:
The posix_madvise(3) and posix_fadvise(2) should return error on
failure, same as posix_fallocate(2).
2014-02-06 19:47:17 +00:00
eadler
ec294fd7f5 MFC r258779,r258780,r258787,r258822:
Fix undefined behavior: (1 << 31) is not defined as 1 is an int and this
shifts into the sign bit.  Instead use (1U << 31) which gets the
expected result.

Similar to the (1 << 31) case it is not defined to do (2 << 30).

This fix is not ideal as it assumes a 32 bit int, but does fix the issue
for most cases.

A similar change was made in OpenBSD.
2014-02-04 03:36:42 +00:00
pluknet
3368a0c181 Update EINVAL description. 2014-01-30 05:35:12 +00:00
mav
4202d51e16 MFC r258578, r258580, r258581 (by hrs):
Replace Sun RPC license in TI-RPC library with a 3-clause BSD license
with the explicit permissions.
2014-01-22 23:45:27 +00:00
jilles
f972275c13 MFC r260556: Add some missing .Nm for newer syscalls in existing man pages. 2014-01-18 22:47:25 +00:00
pluknet
a7224392fd MFC r259921,259950:
Provide the manual page for aio_fsync(2).
2014-01-14 09:49:42 +00:00
tuexen
c4f2c365c9 MFC r260257:
Fix several bugs in sctp_bindx():
* Set errno to EAFNOSUPPORT if an address is provided which is neither
  AF_INET nor AF_INET6.
* Don't modify the arguments.
* Don't smash the stack when provided with a non-zero port.
* Handle the case correctly where the first address provided is
  an IPv6 address.
2014-01-07 23:51:41 +00:00
pluknet
74494d9239 MFC r259872:
The compile time constant limit on number of swap devices was removed in 5.2.
 As such, remove the EINVAL error saying so.  Currently the vm.nswapdev sysctl
 just represents the number of added swap devices.
2014-01-02 16:37:23 +00:00
pluknet
5b37933bb7 MFC r259922: Fix an apparent typo. 2013-12-29 09:17:43 +00:00
kib
a455348768 MFC r259042:
Do not force to run atexit handlers, which text comes from a dso owning
the handle passed to __cxa_finalize() but which are registered by other
dso, when the process is inside exit(3).
2013-12-13 05:54:30 +00:00
trasz
fd6f73d3a2 MFC r258043:
Fix typo.

Approved by:	re (gjb)
Sponsored by:	The FreeBSD Foundation
2013-12-03 18:35:17 +00:00
trasz
cf3929b055 MFC r258042:
Fix description to actually make sense.

Approved by:	re (gjb)
Sponsored by:	The FreeBSD Foundation
2013-12-03 18:28:18 +00:00
trasz
2f5fcb8328 MFC r258041:
Mention acl_get_brand_np(3).

Approved by:	re (gjb)
Sponsored by:	The FreeBSD Foundation
2013-12-03 18:18:35 +00:00
gjb
79d300c715 MFC r258537, r258587:
r258537 (hrs):
  Add ICONV_{GET,SET}_ILSEQ_INVALID iconvctl.  GNU iconv returns
  EILSEQ when there is an invalid character in the output codeset
  while it is valid in the input.  However, POSIX requires iconv()
  to perform an implementation-defined conversion on the character.
  So, Citrus iconv converts such a character to a special character
  which means it is invalid in the output codeset.

  This is not a problem in most cases but some software like libxml2
  depends on GNU's behavior to determine if a character is output
  as-is or another form such as a character entity (&#NNN;).

r258587 (peter):
  Move the iconv wrapper source from libc_nonshared to libc/iconv so
  that it is all in the one place again.  Rename libc/iconv/iconv.c
  to bsd_iconv.c. Compile the wrappers into libc.a so that
  WITHOUT_DYNAMICROOT works again.

Approved by:	re (kib)
Sponsored by:	The FreeBSD Foundation
2013-11-29 19:44:30 +00:00