6663 Commits

Author SHA1 Message Date
Andreas Tobler
b286f80c2d Use the macro WEAK_ALIAS. Tested on 32 and 64-bit. 2012-01-06 09:21:40 +00:00
Ed Schouten
19c262fe87 Change index() and rindex() to a weak alias.
This allows people to still write statically linked applications that
call strchr() or strrchr() and have a local variable or function called
index.

Discussed with:	bde@
2012-01-05 10:32:53 +00:00
Xin LI
6fe5169cff Document the fact that chroot(2) is no longer part of POSIX since SUSv3
and add a SECURITY CONSIDERATIONS section for recommended practices.
2012-01-04 02:04:20 +00:00
Ed Schouten
b3608ae18f Replace index() and rindex() calls with strchr() and strrchr().
The index() and rindex() functions were marked LEGACY in the 2001
revision of POSIX and were subsequently removed from the 2008 revision.
The strchr() and strrchr() functions are part of the C standard.

This makes the source code a lot more consistent, as most of these C
files also call into other str*() routines. In fact, about a dozen
already perform strchr() calls.
2012-01-03 18:51:58 +00:00
Ed Schouten
46632c18bd Merge index() and strchr() together.
As I looked through the C library, I noticed the FreeBSD MIPS port has a
hand-written version of index(). This is nice, if it weren't for the
fact that most applications call strchr() instead.

Also, on the other architectures index() and strchr() are identical,
meaning we have two identical pieces of code in the C library and
statically linked applications.

Solve this by naming the actual file strchr.[cS] and let it use
__strong_reference()/STRONG_ALIAS() to provide the index() routine. Do
the same for rindex()/strrchr().

This seems to make the C libraries and static binaries slightly smaller,
but this reduction in size seems negligible.
2012-01-03 07:14:01 +00:00
Dimitry Andric
b9b670e347 Add some additional const poison after r228972. The 'mapping' array in
lib/libc/gen/strtofflags.c became const, but gcc did not warn about
assigning its members to non-const pointers.  Clang warned about this
with:

lib/libc/gen/strtofflags.c:98:12: error: assigning to 'char *' from 'const char *' discards qualifiers [-Werror,-Wincompatible-pointer-types]
                        for (sp = mapping[i].invert ? mapping[i].name :
                                ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Reviewed by:	jilles
2011-12-30 20:41:24 +00:00
Jilles Tjoelker
8c87e0405a libc: Eliminate some relative relocations in file flags table. 2011-12-29 22:15:18 +00:00
Sergey Kandaurov
5f09751fe3 Fix manual section for acl_get(3) and mac_get(3) family functions.
Reviewed by:	rwatson
MFC after:	1 week
2011-12-29 21:12:22 +00:00
Jilles Tjoelker
5b7aa0fc6e libc: Eliminate some relative relocations in getusershell(). 2011-12-27 23:35:10 +00:00
Jilles Tjoelker
571eea83bb libc: Eliminate some relative relocations in setlocale(). 2011-12-27 23:28:01 +00:00
Xin LI
b0266169d4 Update rtprio(2) manual page to reflect the latest changes in -CURRENT as
well as provide documentation for rtprio_thread(2) system call.

MFC after:	1 month
X-MFC-after:	r228470
2011-12-27 10:34:00 +00:00
Glen Barber
bd45f5676d Add missing opening and closing brackets in getopt_long.3 and getsubopt.3
to make the examples reflect reality more closely.

MFC after:	1 week
X-MFC-After:	9.0-RELEASE
2011-12-26 03:14:37 +00:00
Colin Percival
3e65b9c6e6 Fix a problem whereby a corrupt DNS record can cause named to crash. [11:06]
Add an API for alerting internal libc routines to the presence of
"unsafe" paths post-chroot, and use it in ftpd. [11:07]

Fix a buffer overflow in telnetd. [11:08]

Make pam_ssh ignore unpassphrased keys unless the "nullok" option is
specified. [11:09]

Add sanity checking of service names in pam_start. [11:10]

Approved by:    so (cperciva)
Approved by:    re (bz)
Security:       FreeBSD-SA-11:06.bind
Security:       FreeBSD-SA-11:07.chroot
Security:       FreeBSD-SA-11:08.telnetd
Security:       FreeBSD-SA-11:09.pam_ssh
Security:       FreeBSD-SA-11:10.pam
2011-12-23 15:00:37 +00:00
Guy Helmer
6890d15663 Handle malloc failures in yplib.c.
PR:		bin/83349
2011-12-23 02:13:42 +00:00
Guy Helmer
53fc6e1e4d Handle failures to malloc memory to hold key or val copies.
PR:		bin/83348
2011-12-23 01:56:25 +00:00
Eitan Adler
855291741d - Fix style(9) bugs in glob.c
Approved by:	jilles
2011-12-20 22:56:44 +00:00
Eitan Adler
0d6d372c03 - Add restrict keyword to glob(3)
PR:		kern/161958
Submitted by:	Henning Petersen <henning.petersen@t-online.de>
Approved by:	jilles
MFC after:	3 days
2011-12-20 22:56:13 +00:00
Michael Tuexen
5dc6a81580 Address warnings found by clang.
MFC after: 3 months.
2011-12-17 14:55:19 +00:00
Gleb Smirnoff
08b68b0e4c A major overhaul of the CARP implementation. The ip_carp.c was started
from scratch, copying needed functionality from the old implemenation
on demand, with a thorough review of all code. The main change is that
interface layer has been removed from the CARP. Now redundant addresses
are configured exactly on the interfaces, they run on.

The CARP configuration itself is, as before, configured and read via
SIOCSVH/SIOCGVH ioctls. A new prefix created with SIOCAIFADDR or
SIOCAIFADDR_IN6 may now be configured to a particular virtual host id,
which makes the prefix redundant.

ifconfig(8) semantics has been changed too: now one doesn't need
to clone carpXX interface, he/she should directly configure a vhid
on a Ethernet interface.

To supply vhid data from the kernel to an application the getifaddrs(8)
function had been changed to pass ifam_data with each address. [1]

The new implementation definitely closes all PRs related to carp(4)
being an interface, and may close several others. It also allows
to run a single redundant IP per interface.

Big thanks to Bjoern Zeeb for his help with inet6 part of patch, for
idea on using ifam_data and for several rounds of reviewing!

PR:		kern/117000, kern/126945, kern/126714, kern/120130, kern/117448
Reviewed by:	bz
Submitted by:	bz [1]
2011-12-16 12:16:56 +00:00
Dimitry Andric
e7ac9483a9 Since clang does not support the tls_model attribute used in malloc.c
yet (see LLVM PR 9788), and warns about it, rub it out for now.  When
clang grows support for this attribute, I will revert this again.

MFC after:	1 week
2011-12-15 20:40:11 +00:00
Dimitry Andric
51907e6434 In lib/libc/rpc/crypt_client.c, fix a clang warning about an implicit
conversion between enum desdir/desmode from include/rpc/des.h, and enum
desdir/desmode from include/rpcsvc/crypt.x.  These are actually
different enums, with different value names, but by accident the integer
representation of the enum values happened to be the same.

MFC after:	1 week
2011-12-15 20:27:36 +00:00
Dimitry Andric
477433d829 Remove meaningless self-assignment in res_send.c, otherwise clang will
warn about it.  I guess this was originally done to silence a bogus
warning by an older version of gcc, but I could not reproduce it with
any version of gcc that I have access to.

MFC after:	1 week
2011-12-15 20:10:12 +00:00
Michael Tuexen
539bb45a7f Fix a bug where sctp_sendmdg() uses uninitialized memory.
MFC after: 3 days.
2011-12-15 12:35:03 +00:00
David Chisnall
4fb4550854 Small style(9) improvements.
Approved by:	dim (mentor)
2011-12-15 11:16:41 +00:00
Ruslan Ermilov
e26e60ee36 Clean up includes; the prototype for getosreldate() has moved to
<unistd.h> in r183390.
2011-12-14 08:35:08 +00:00
David Chisnall
af8065219d Some fixes to the man pages for [at_]quick_exit(3)
Reviewed by:    pluknet
Approved by:    dim (mentor)
2011-12-07 21:02:35 +00:00
David Chisnall
e86328cbfb style(9) cleanups.
Approved by:	brooks (mentor)
2011-12-07 16:12:54 +00:00
David Chisnall
0a31efe016 Implement quick_exit() / at_quick_exit() from C++11 / C1x. Also add a
__noreturn macro and modify the other exiting functions to use it.

The __noreturn macro, unlike __dead2, must be used BEFORE the function.
This is in line with the C and C++ specifications that place _Noreturn (c1x)
and [[noreturn]] (C++11) in front of the functions.  As with __dead2, this
macro falls back to using the GCC attribute.

Unfortunately, clang currently sets the same value for the C version macro
in C99 and C1x modes, so these functions are hidden by default.  At some
point before 10.0, I need to go through the headers and clean up the C1x /
C++11 visibility.

Reviewed by:	brooks (mentor)
2011-12-07 15:25:48 +00:00
Ruslan Ermilov
20df026c9a The NOTE_COPY should have been named NOTE_FFCOPY from the very
beginning.

Submitted by:	Igor Sysoev
2011-12-07 11:06:18 +00:00
Jilles Tjoelker
54ad8a62ed libc: Eliminate 13 relative relocations in wctype(). 2011-12-05 00:00:47 +00:00
Eitan Adler
0f701093d2 Revert r227812 and r227808 per discussion
Reviewed by:	many
Approved by:	des
2011-12-02 15:41:09 +00:00
David E. O'Brien
8449399687 Split sentences at period boundaries. 2011-12-02 11:55:09 +00:00
David E. O'Brien
0582474525 Tweak the r137233 fix to r136283 -- Code was making two send() attempts
vs. the comment documented "If we are working with a privileged socket,
then take only one attempt".  Make the code match.

Furthermore, critical privileged applications that [over] log a vast amount
can look like a DoS to this code.  Given it's unlikely the single reattempted
send() will succeeded, avoid usurping the scheduler in a library API for a
single non-critical facility in critical applications.

Obtained from:	Juniper Networks
Discussed with:	glebius
2011-12-02 01:06:33 +00:00
Robert Watson
251944df31 Cross-reference capsicum.4 from cap_enter.2 and cap_new.2.
MFC after:	3 days
Sponsored by:	Google, Inc.
2011-11-27 19:45:41 +00:00
David Chisnall
5bf69a4b16 style(9) fix.
Approved by:	dim (mentor)
2011-11-26 16:49:25 +00:00
David Chisnall
48cb9786e1 Return not-implemented from pthread_once and pthread_key_create, rather
than silently failing and returning success.

Without this, code calls pthread_once(), receives a return value of
success, and thinks that the passed function has been called.

Approved by:	dim (mentor)
2011-11-26 15:57:09 +00:00
Jilles Tjoelker
38574aa8df fdopendir(): Do not close the passed file descriptor on failure.
Reviewed by:	delphij
2011-11-22 23:46:56 +00:00
David Chisnall
2013459487 Fix a crash when trying to duplicate a locale that contains some implicit C locale components.
Reported by:	Michael Butler
Approved by:	dim (mentor)
2011-11-22 14:11:42 +00:00
Eitan Adler
623b87d8f4 - fix some style(9) nits with my last commit
- add a comment explaining why I used '|' instead of '||'

Submitted by:	danfe@
Approved by:	emaste@
2011-11-22 02:50:24 +00:00
Eitan Adler
55e84fcee1 - add check for pointer equality prior to performing the O(n) pass
- while here change 's' to 's1' in strcoll

Submitted by:	eadler@
Reviewed by:	theraven@
Approved by:	brooks@
MFC after:	2 weeks
2011-11-22 00:07:53 +00:00
David Chisnall
a54626e0cd (Hopefully) Fix the build with clang by removing a typedef that's no longer needed.
Approved by:	brooks (mentor)
2011-11-21 23:32:14 +00:00
Sergey Kandaurov
0a1c3432f6 Add history for setsockopt(2).
PR:		docs/162719
Submitted by:	Niclas Zeising <niclas at zeising gmail>
MFC after:	1 week
2011-11-21 14:36:19 +00:00
Lawrence Stewart
cf13a58510 - Add the ffclock_getcounter(), ffclock_getestimate() and ffclock_setestimate()
system calls to provide feed-forward clock management capabilities to
  userspace processes. ffclock_getcounter() returns the current value of the
  kernel's feed-forward clock counter. ffclock_getestimate() returns the current
  feed-forward clock parameter estimates and ffclock_setestimate() updates the
  feed-forward clock parameter estimates.

- Document the syscalls in the ffclock.2 man page.

- Regenerate the script-derived syscall related files.

Committed on behalf of Julien Ridoux and Darryl Veitch from the University of
Melbourne, Australia, as part of the FreeBSD Foundation funded "Feed-Forward
Clock Synchronization Algorithms" project.

For more information, see http://www.synclab.org/radclock/

Submitted by:	Julien Ridoux (jridoux at unimelb edu au)
2011-11-21 01:26:10 +00:00
Michael Tuexen
c9c5805975 Add support for the SCTP_REMOTE_UDP_ENCAPS_PORT socket option.
Retire the the now unused sctp_udp_tunneling_for_client_enable
sysctl variable.

MFC after: 3 months.
2011-11-20 15:00:45 +00:00
David Chisnall
3c87aa1d3d Implement xlocale APIs from Darwin, mainly for use by libc++. This adds a
load of _l suffixed versions of various standard library functions that use
the global locale, making them take an explicit locale parameter.  Also
adds support for per-thread locales.  This work was funded by the FreeBSD
Foundation.

Please test any code you have that uses the C standard locale functions!

Reviewed by:    das (gdtoa changes)
Approved by:    dim (mentor)
2011-11-20 14:45:42 +00:00
Konstantin Belousov
2cda7d0049 Fix typo.
Submitted by:	arundel
MFC after:	3 days
2011-11-17 13:14:07 +00:00
David Schultz
7a0789b485 Further reduce diffs with OpenBSD's arc4random. The main functional
change here is to ensure that when a process forks after arc4random
is seeded, the parent and child don't observe the same random sequence.
OpenBSD's fix introduces some additional overhead in the form of a
getpid() call.  This could be improved upon, e.g., by setting a flag
in fork(), if it proves to be a problem.

This was discussed with secteam (simon, csjp, rwatson) in 2008, shortly
prior to my going out of town and forgetting all about it.  The conclusion
was that the problem with forks is worrisome, but it doesn't appear to
have introduced an actual vulnerability for any known programs.

The only significant remaining difference between our arc4random and
OpenBSD's is in how we seed the generator in arc4_stir().
2011-11-15 05:49:24 +00:00
David Schultz
c0b4847030 Sync the style, comments, and variable names of arc4random.c with
OpenBSD's version (r1.22).  While some of our style changes were
indeed small improvements, being able to easily track functionality
changes in OpenBSD seems more useful.

Also fix style bugs in the FreeBSD-specific parts of this file.

No functional changes, as verified with md5.
2011-11-15 05:45:46 +00:00
Kevin Lo
5249ac8610 Converting int to wint_t leads to broekn comparison of raw char
and encoded wint_t.

Spotted by:	ache
2011-11-11 01:35:07 +00:00
Doug Barton
cbbacf9bcc Document that flock can return ENOLCK 2011-11-10 06:20:18 +00:00