History log of /freebsd-10.0-release/lib/libc/nls/msgcat.c
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 259065 07-Dec-2013 gjb

- Copy stable/10 (r259064) to releng/10.0 as part of the
10.0-RELEASE cycle.
- Update __FreeBSD_version [1]
- Set branch name to -RC1

[1] 10.0-CURRENT __FreeBSD_version value ended at '55', so
start releng/10.0 at '100' so the branch is started with
a value ending in zero.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


# 244358 17-Dec-2012 eadler

Fix warning from valgrind when a failed entry is tested.

PR: kern/173008
Submitted by: Zhihao Yuan <lichray@gmail.com>
Reviewed by: gabor
Approved by: cperciva (implicit)
MFC after: 1 week


# 241046 29-Sep-2012 jilles

libc: Use O_CLOEXEC for various internal file descriptors.

This fixes a race condition where another thread may fork() before CLOEXEC
is set, unintentionally passing the descriptor to the child process.

This commit only adds O_CLOEXEC flags to open() or openat() calls where no
fcntl(fd, F_SETFD, FD_CLOEXEC) follows. The separate fcntl() call still
leaves a race window so it should be fixed later.


# 204110 20-Feb-2010 gabor

- More style(9) fixups

Approved by: delphij (mentor)


# 203719 09-Feb-2010 gabor

- Deal with some special cases [1]
- style(9) nits

Pointed out by: jilles [1]
Approved by: delphij (mentor)


# 203174 29-Jan-2010 gabor

- Fix some style(9) bugs

Pointed out by: bde


# 202993 25-Jan-2010 gabor

- style(9)

Approved by: delphij


# 202992 25-Jan-2010 gabor

Cache failing and opened catalogs in catopen() and related functions.
Continuous catopen() calls cause 4 failig stat(2) each, which means a lot
of overhead. It is also a good idea to keep the opened catalogs in the memory
to speed up further catopen() calls to the same catalog since these catalogs
are not big at all. In this case, we count references and only free() the
allocated space when the reference count reaches 0. The reads and writes to
the cache are syncronized with an rwlock when these functions are called from
a threaded program.

Requested by: kib
Approved by: delphij


# 142664 27-Feb-2005 phantom

Bring in NetBSD's improvements and cleanups to NLS subsystem, making
it type and endian clean and removing of stdio dependency from NLS
functions (catalog files now are processed via mmap())

Also following changes were done (against NetBSD version):

. If mmap() failed, set errno to EINVAL and do not try to munmap() file

Obtained from: NetBSD


# 141118 01-Feb-2005 phantom

Cleanup prototypes and remove dead code

MFC After: 3 days


# 121667 29-Oct-2003 tjr

Remove incomplete support for running FreeBSD userland on old NetBSD kernels
lacking the issetugid() and utrace() syscalls.


# 114443 01-May-2003 nectar

Back out the `hiding' of strlcpy and strlcat. Several people
vocally objected to this safety belt.


# 114256 29-Apr-2003 nectar

`Hide' strlcpy and strlcat (using the namespace.h / __weak_reference
technique) so that we don't wind up calling into an application's
version if the application defines them.

Inspired by: qpopper's interfering and buggy version of strlcpy


# 106053 27-Oct-2002 wollman

Do not include <sys/syslimits.h> directly; it is not intended for general
consumption.


# 101727 12-Aug-2002 ache

Now, malloc is fixed, remove ENOMEM hardcode


# 101494 07-Aug-2002 ache

Set errno to ENOMEM for strdup too (due to malloc errno bug)


# 101490 07-Aug-2002 ache

Always set errno to ENOMEM after malloc failed (as workaround).
Our malloc sometimes forget to set errno, f.e. for size overflow case.


# 101450 07-Aug-2002 ache

Close descriptor, if error happens in loadCat()


# 101316 04-Aug-2002 ache

Try harder to check lang as path component (".", "..", / inside).
Try harder to not overwrite failure errno.
style(9) whitespace reformatting for code readability.


# 92986 22-Mar-2002 obrien

Fix the style of the SCM ID's.
I believe have made all of libc .c's as consistent as possible.


# 81586 13-Aug-2001 ru

Removed duplicate VCS ID tags, as per style(9).


# 71579 24-Jan-2001 deischen

Remove _THREAD_SAFE and make libc thread-safe by default by
adding (weak definitions to) stubs for some of the pthread
functions. If the threads library is linked in, the real
pthread functions will pulled in.

Use the following convention for system calls wrapped by the
threads library:
__sys_foo - actual system call
_foo - weak definition to __sys_foo
foo - weak definition to __sys_foo

Change all libc uses of system calls wrapped by the threads
library from foo to _foo. In order to define the prototypes
for _foo(), we introduce namespace.h and un-namespace.h
(suggested by bde). All files that need to reference these
system calls, should include namespace.h before any standard
includes, then include un-namespace.h after the standard
includes and before any local includes. <db.h> is an exception
and shouldn't be included in between namespace.h and
un-namespace.h namespace.h will define foo to _foo, and
un-namespace.h will undefine foo.

Try to eliminate some of the recursive calls to MT-safe
functions in libc/stdio in preparation for adding a mutex
to FILE. We have recursive mutexes, but would like to avoid
using them if possible.

Remove uneeded includes of <errno.h> from a few files.

Add $FreeBSD$ to a few files in order to pass commitprep.

Approved by: -arch


# 66412 27-Sep-2000 phantom

Fix typo

PR: misc/21596
Submitted by: TOGAWA Satoshi <toga@puyo.org>


# 65609 08-Sep-2000 ache

Prevent buffer overflow if NLSPATH is too long


# 65476 05-Sep-2000 ache

Fully implement NLSPATH processing as described in SUSv2


# 65472 05-Sep-2000 phantom

Oops! don't set errno to ENOMEM explicitly if malloc() failed.

Found by: ache


# 65436 04-Sep-2000 phantom

Finaly cleanup libc/nls code:

* rewrite catopen() to remove duplicate code chunks and optimize
* if empty string is passed to catopen() as name argument then
catopen() will set errno to ENOENT (File not found), not EINVAL
* move search code to LOOKUP() macro to shrink amount of duplicated code
* move common resource freeing actions to __nls_free_resources() function
* exclude from build code related to MCLoadAll defintion since it is not
using at all
* style(9) related whitespace changes

Reviewed by: ache


# 65417 03-Sep-2000 ache

Rewrite using stdio. It cause program speedup since eliminates lots of small
read() syscalls. It not cause static binary size increasing because stdio
already picked via setlocale() called from catopen()


# 65330 01-Sep-2000 ache

Treat empty lang as "C" lang too


# 65326 01-Sep-2000 phantom

Set rcsid to correct value
Resort #include files
Remove SYSV compatibility chunks


# 65324 01-Sep-2000 phantom

Remove unused indirect references to cat* functions.


# 65323 01-Sep-2000 phantom

Fix memory leak introduced by kris in rev 1.22


# 65321 01-Sep-2000 ache

setlocale may return NULL, handle this case too by resetting to "C"


# 65320 01-Sep-2000 ache

Move protection code down to handle NL_CAT_LOCALE case too.


# 65319 01-Sep-2000 ache

Protect from badly formed LANG variable


# 65256 30-Aug-2000 ache

catgets: detect if fd becomes invalid after exec and return default response

cosmetique, use NULL for pointers comparison


# 64274 05-Aug-2000 kris

Prevent internal buffer overflow due to expansion of $LANG and/or name
argument in catopen().

Reviewed by: chris, -audit


# 56698 27-Jan-2000 jasone

Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(),
just use _foo() <-- foo(). In the case of a libpthread that doesn't do
call conversion (such as linuxthreads and our upcoming libpthread), this
is adequate. In the case of libc_r, we still need three names, which are
now _thread_sys_foo() <-- _foo() <-- foo().

Convert all internal libc usage of: aio_suspend(), close(), fsync(), msync(),
nanosleep(), open(), fcntl(), read(), and write() to _foo() instead of foo().

Remove all internal libc usage of: creat(), pause(), sleep(), system(),
tcdrain(), wait(), and waitpid().

Make thread cancellation fully POSIX-compliant.

Suggested by: deischen


# 55837 12-Jan-2000 jasone

Add three-tier symbol naming in support of POSIX thread cancellation
points. For library functions, the pattern is __sleep() <--
_libc_sleep() <-- sleep(). The arrows represent weak aliases. For
system calls, the pattern is _read() <-- _libc_read() <-- read().


# 50476 27-Aug-1999 peter

$Id$ -> $FreeBSD$


# 37643 14-Jul-1998 ache

Provide meaningful errno value on error return


# 35552 30-Apr-1998 ache

Return -1 for invalid descriptor in catclose


# 35550 30-Apr-1998 ache

If passed catgets descriptor is NULL or -1, return default string immediately


# 35549 30-Apr-1998 ache

Force loadType to 0


# 35548 30-Apr-1998 ache

Implement NL_CAT_LOCALE
Manpages cleanup


# 35546 30-Apr-1998 ache

Prototypes/typedefs cleanup
Fix error return codes


# 32524 15-Jan-1998 jb

Add #ifndef __NETBSD_SYSCALLS around calls to issetugid() which
do not exist in NetBSD 1.3.


# 25642 10-May-1997 ache

Plug even more failure memory leaks


# 25641 10-May-1997 ache

Cleanup
Plug failure memory leaks
Use issetugid now
PR: 3492


# 24254 25-Mar-1997 imp

Restricting $LANG was a really bad idea

Pointed out by: Everybody but Jordan.


# 24197 24-Mar-1997 imp

Don't honor LANG or NLSPATH if we're setuid/setgid.

Fixes PR 2582

Submitted by: Julian Assange


# 22993 22-Feb-1997 peter

Revert $FreeBSD$ to $Id$


# 21673 14-Jan-1997 jkh

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


# 17141 12-Jul-1996 jkh

General -Wall warning cleanup, part I.
Submitted-By: Kent Vander Velden <graphix@iastate.edu>


# 11662 22-Oct-1995 phk

and so on...


# 9245 17-Jun-1995 ache

Add /usr/local/share/nls to default search path


# 8870 30-May-1995 rgrimes

Remove trailing whitespace.


# 7494 30-Mar-1995 jkh

Add the nls code for XPG3-style message catalogs to libc.
Obtained from: NetBSD