Commit Graph

6848 Commits

Author SHA1 Message Date
Andrey A. Chernov
96700463ec 1) IEEE Std 1003.1-2008, "errno" section, is explicit that
"The setting of errno after a successful call to a function is
unspecified unless the description of that function specifies that
errno shall not be modified."

However, free() in IEEE Std 1003.1-2008 does not mention its interaction
with errno, so MAY modify it after successful call
(it depends on particular free() implementation, OS-specific, etc.).

So, save errno across free() calls to make code portable and
POSIX-conformant.

2) Remove unused serrno assignment.

MFC after:      1 week
2012-06-04 21:34:49 +00:00
Ed Schouten
0089e0c430 Remove invalid remark about pipes.
The stat structures returned on pipes seems to contain all the
information required by POSIX. Especially the wording "and thus to a
pipe" makes little sense, because it seems to imply a certain
relationship between sockets and pipes that simply isn't there.

MFC after:	2 weeks
2012-06-02 10:50:25 +00:00
Joel Dahl
9ee2158b55 mdoc: minor Bl improvements. 2012-06-02 08:47:26 +00:00
Guy Helmer
3d1d73c22f Style(9) improvements: remove unnecessary parenthesis, improve order
of local variable declarations, remove bogus casts, and resolve long
lines.

Reviewed by:	bde
2012-06-01 15:02:23 +00:00
Eitan Adler
e5d9109aab Only set _w to 0 when the file stream is not currently reading. Without
this fflush may fail to write data in the buffer.

PR:		kern/137819
Submitted by:	Eric Blake <ebb9@byu.net>
Reviewed by:	theraven
Approved by:	cperciva
MFC after:	2 weeks
2012-05-30 04:06:38 +00:00
Konstantin Belousov
86b0103262 Clarify the SEEK_HOLE description, it repositions the file pointer.
MFC after:  3 days
2012-05-26 05:25:55 +00:00
Marcel Moolenaar
f7e3011309 Doh... Don't add __eabi to an old version tag (i.e. FBSD_1.0). Add it to the
current one (= FBSD_1.3).

Pointed out by: kib
2012-05-25 16:30:42 +00:00
Marcel Moolenaar
a4dcff16c8 Allow building for the PowerPC EABI by providing a dummy __eabi()
function. The purpose of the __eabi() function is to set up the
runtime and is called first thing by main(). The runtime is already
set up for us prior to caling main, so there's nothing to do for
us in the EABI case.
2012-05-24 20:12:46 +00:00
Isabell Long
af27459ace Add two new locale-specific man pages:
- libc/stdio/scanf_l.3
- libc/stdio/printf_l.3

Reviewed by:	theraven
Approved by:	gabor (mentor)
MFC after:	5 days
2012-05-23 17:13:30 +00:00
Michael Tuexen
43dc9e2f41 Update copyright date.
MFC after: 3 days
2012-05-23 10:35:40 +00:00
Kevin Lo
d52995b6cf Add missing header needed by free()
Reported by:	tinderbox
2012-05-22 01:28:32 +00:00
Guy Helmer
fed7420ced Add checks for memory allocation failures in appropriate places, and
avoid creating bad entries in the grp list as a result of memory allocation
failures while building new entries.

PR:		bin/83340
Reviewed by:	delphij (prior version of patch)
2012-05-21 21:10:00 +00:00
Guy Helmer
299bafae0c Apply style(9) to return and switch/case statements.
Reviewed by:	delphij (prior version of the patch)
2012-05-21 21:04:29 +00:00
Gleb Kurtsou
c7e5232438 Disable NLS catalog use in libc if built with WITHOUT_NLS option.
Functions affected: strerror, strsignal, gai_strerror.
2012-05-21 08:10:42 +00:00
Marcel Moolenaar
46ad370763 Don't link against libssp if MK_SSP is set to no.
Note that this still misses a proper dependency at this time.
2012-05-19 17:49:20 +00:00
Gleb Kurtsou
31bfa3ca7c Put my name as copyright owner of lib/libc/gen/dirfd.c added in r235647.
Requested by:	kib@
2012-05-19 14:30:49 +00:00
Gleb Kurtsou
0bb2aabf26 Hide DIR definition by making it an opaque struct typedef.
Introduce dirfd() libc exported symbol replacing macro with same name,
preserve _dirfd() macro for internal use.

Replace dirp->dd_fd with dirfd() call. Avoid using dirfd as variable
name to prevent shadowing global symbol.

Sponsored by:	Google Summer Of Code 2011
2012-05-19 12:44:27 +00:00
Marcel Moolenaar
cf0d539f8b Use the LLINDEX macro to access the link-level I/F index. This makes
it possible to work with a different type for the sdl_index field --
it only requires a recompile.

Obtained from:	Juniper Networks, Inc.
2012-05-19 02:39:43 +00:00
Joel Dahl
67783ce453 mdoc: avoid unterminated quoted strings. 2012-05-13 14:28:00 +00:00
Joel Dahl
35471bf8ef Minor mdoc nits. 2012-05-13 14:16:04 +00:00
Joel Dahl
790752beb4 Minor mdoc nits. 2012-05-12 20:27:13 +00:00
Joel Dahl
9650117163 Remove tab from kernel configuration option. This is consistent with the rest
of our manual pages.
2012-05-12 16:08:05 +00:00
Joel Dahl
8521fde5fc mdoc: end list context with El. 2012-05-12 07:52:45 +00:00
Glen Barber
a3fb6da9ba General mdoc(7) and typo fixes.
PR:		167734
Submitted by:	Nobuyuki Koganemaru (kogane!jp.freebsd.org)
MFC after:	3 days
2012-05-11 20:06:46 +00:00
Konstantin Belousov
fdbe55fccb According to SUSv4, realpath(3) must fail if
[ENOENT]  A component of file_name does not name an existing file or
    file_name points to an empty string.
[ENOTDIR] A component of the path prefix is not a directory, or the
    file_name argument contains at least one non- <slash> character
    and ends with one or more trailing <slash> characters and the last
    pathname component names an existing file that is neither a
    directory nor a symbolic link to a directory.
Add checks for the listed conditions, and set errno accordingly.

Update the realpath(3) manpage to mention SUS behaviour. Remove the
requirement to include sys/param.h before stdlib.h.

PR:	    128933
MFC after:  3 weeks
2012-05-11 11:29:08 +00:00
Dimitry Andric
83c476cd09 Fix copy/paste error in lib/libc/locale/toupper.c.
Submitted by:	Kohji Okuno <okuno.kohji@jp.panasonic.com>
2012-05-10 20:03:34 +00:00
Eitan Adler
9ff418da7f Remove reference to non-existent FreeBSD Security Architecture
Approved by:	cperciva
MFC after:	3 days
2012-05-09 17:27:49 +00:00
Konstantin Belousov
9a36eaa36e Plug a leak.
Submitted by:	Greg Bednarek <gbednarek averesystems com>
MFC after:	1 week
2012-05-08 19:47:52 +00:00
Glen Barber
9f63b42217 General mdoc(7) and typo fixes.
PR:		167713
Submitted by:	Nobuyuki Koganemaru (kogane!jp.freebsd.org)
2012-05-08 18:56:21 +00:00
Michael Tuexen
ff9452e199 Remove debug output.
MFC after: 3 days
2012-05-04 10:26:50 +00:00
Jean-Sébastien Pédron
671c033623 Remove incorrect __restrict qualifier on several pointers
The typical case was:
static __inline int
convert_ccl(FILE *fp, char * __restrict p, [...])
{
        [...]

        if (p == SUPPRESS_PTR) {
		[...]
	} else {
		[...]
	}

	[...]
}

This qualifier says that the pointer is the only one at that time
pointing to the resource.

Here, clang considers that "p" will never match "SUPPRESS_PTR" and
optimize the if{} block out. This leads to segfaults in programs calling
vfscanf(3) and vfwscanf(3) with just the format string (no arguments
following it).

The following softwares were reported to abort with segmentation fault
and this patch fixes it:
    o  cmake
    o  smartd
    o  devel/ORBit2

dim@ opened an LLVM PR to discuss this clang optimization:
    http://llvm.org/bugs/show_bug.cgi?id=12656

Tested by:	bsam@
2012-04-30 11:28:17 +00:00
Robert Watson
ceebc4ca95 fix a further typo in the pdfork(2) man page.
Submitted by:	Norman Hardy
MFC after:	3 days
2012-04-30 08:00:52 +00:00
Robert Watson
aa5d4b9247 The returned file descriptor from pdfork(2) is via fdp, not pidp.
Submitted by:	Norman Hardy
MFC after:	3 days
2012-04-30 07:32:39 +00:00
David Schultz
cbd3cbbae0 Fix a bug in *wscanf's handling of non-wide %s, %c, and %[
conversions.  Both the specification and the documentation say the
width is interpreted as the max number of wide characters to read, but
the implementation was interpreting it as the number of bytes to convert.
(See also r105317.)

This change has security implications for any applications that depend
on the buggy behavior, but the impact in practice is probably nil.
Any such application would already be buggy on other platforms that
get the semantics right.  Also, these conversions are rarely used;
%ls, %lc, and %l[ are more appropriate.
2012-04-30 01:08:18 +00:00
Eitan Adler
74af13c61a pread(2) might fail with EBUSY, so document it
PR:		docs/167201
Submitted by:	Kurt Jaeger <fbsd-ports@opsec.eu>
Approved by:	cperciva
MFC after:	3 days
2012-04-29 22:23:00 +00:00
Eitan Adler
be8490925a Allow users of gprof to get per run output files (using the pid)
PR:		bin/99800
Submitted by:	Peter Jeremy <peterjeremy@optushome.com.au>
Reviewed by:	jilles (code)
Reviewed by:	dwhite (doc)
Approved by:	cperciva
MFC after:	1 week
2012-04-29 22:19:58 +00:00
David Schultz
d7af8cf14b Previously, vfscanf()'s wide character processing functions were
reading wide characters manually.  With this change, they now use
fgetwc().  To make this work, we use an internal version of fgetwc()
with a few extensions: it takes an mbstate * because non-wide streams
don't have a built-in mbstate, and it indicates the number of bytes
read.

vfscanf() now resembles vfwscanf() more closely.  Minor functional
improvements include working xlocale support in vfscanf(), setting the
stream error indicator on encoding errors, and proper handling of
shift-based encodings.  (Actually, making shift-based encodings work
with non-wide streams is hopeless, but the implementation now matches
the broken specification.)
2012-04-29 16:28:39 +00:00
Jeremie Le Hen
5a239e7000 Fix small documentation mistakes.
Submitted by:	brueffer
Approved by:	kib (mentor)
2012-04-28 21:50:30 +00:00
Jeremie Le Hen
6486b015fc Import stdbuf(1) and the shared library it relies on.
This tool changes the default buffering behaviour of standard
stdio streams.

It only works on dynamic binaries.  To make it work for static
ones it would require cluttering stdio because there no single
entry point.

PR:		166660
Reviewed by:	current@, jhb
Approved by:	kib (mentor)
MFC after:	1 week
2012-04-28 20:52:20 +00:00
Konstantin Belousov
ed8ddc6ea0 Fix several memory and lock leaks on the out of memory condition.
Reported by:	Matt Miller <matt matthewjmiller net>
MFC after:	1 week
2012-04-28 18:57:27 +00:00
Michael Tuexen
a1cd9c816d Move sctp_sendv and sctp_recvv to FBSD_1.3 as suggested by
Konstantin Belousov.

MFC after: 1 week.
X-MFC with: r234715
2012-04-26 19:56:06 +00:00
Michael Tuexen
0273a6a333 Export symbols for sctp_sendv() and sctp_recvv().
MFC after: 1 week
2012-04-26 19:31:16 +00:00
Eitan Adler
b9cec40c61 Use the .Bx macro instead of BSD
Submitted by:	ru
Approved by:	ru
MFC after:	3 days
X-MFC-With:	r234700
2012-04-26 19:21:58 +00:00
Jamie Gritton
91b24c185b A new jail(8) with a configuration file, ultimately to replace the work
currently done by /etc/rc.d/jail.

MFC after:	3 months
2012-04-26 17:36:05 +00:00
Eitan Adler
faf6e9484f Document the standardization status of err* and warn*
PR:		docs/164939
Submitted by:	Niclas Zeising <zeising@daemonic.se>
Approved by:	bcr
MFC after:	3 days
2012-04-26 12:59:08 +00:00
Konstantin Belousov
46ffdf3bbd Take the spinlock around clearing of the fp->_flags in fclose(3), which
indicates the avaliability of FILE, to prevent possible reordering of
the writes as seen by other CPUs.

Reported by:	Fengwei yin <yfw.bsd gmail com>
Reviewed by:	jhb
MFC after:	1 week
2012-04-24 17:51:36 +00:00
David Schultz
06b4e48852 Bugfix: Include whitespace characters in the count of the number of
characters read.
2012-04-22 21:28:33 +00:00
David Schultz
f010dc7dc4 Bugfix: Correctly count the number of characters read for %l[ conversions. 2012-04-22 21:28:14 +00:00
David Schultz
01d2a7858e Bugfix: %n doesn't count as a conversion, so
sscanf("abc", "ab%ncd", &i) returns EOF, not 0.
2012-04-22 21:22:14 +00:00
David Schultz
51300896cb Refactor scanf to improve modularity. Conversions are now performed
by separate conversion functions.  This will hopefully make bugs more
noticeable (I noticed several already) and provide opportunities to
reduce code duplication.
2012-04-22 21:18:41 +00:00