argunemt and with a string containing many slashes for the second argument.
This bug may cause setlocale() to destroy static datas.
If a setuid program calls this function as 'setlocale(LC_ALL, "");',
this might be vulnerable, although there are few programs having such
vulnerability. This bug probably affects every versions of NetBSD,
including 1.4, 1.5 and 1.6.
XXX: This part of setlocale is unseemly, thus we had better rewrite it in
the future.
- add libc/citrus directory.
this directory contains the common stuffs not only for locale
but also other facilities relating to i18n (e.g. iconv).
- To keep the binary compatibility for the ctype modules easily,
the interface between libc and the modules is simplified.
- For the future integrated extension, module pool is renamed
from "/usr/lib/runemodule" to "/usr/lib/i18n".
In the future, this directory will contain the modules for "iconv",
"collation", etc.
- some cosmetic changes.
- Bug fix for runetype.h; __attribute__((__packed__)) is placed at
the wrong position and it is invalid unintentionally.
But, the all members of the structures seem well-aligned. Thus,
this bug causes no problem, hopefully.
HEADS UP:
- /usr/lib/rumemodule is obsoleted. If you use the multibyte locales,
you need to install /usr/lib/i18n/* from sys/lib/i18n_module .
- The binary compatibility of /usr/share/locale/*/LC_CTYPE is probably kept.
Perhaps, the bug fix about __packed__ mentioned above breaks the
compatibility... Be careful especially on 64bit platforms.
#define _DEFAULT_INVALID_RUNE -3
and use it accordingly. Also provides a representation programs such as
mklocale can reference when filling out a new locale from a definition.
- mbsrtowcs/wcsrtombs
- when conversion stopped with terminating-null, set *src null-pointer.
- if dst isn't null, ignore len.
- fix how to treat ___mbrtowc
- mbrtowc
- fix problem that terminating null charactor wasn't stored.
- fix problem with stateful encoding.
(when src points to escape sequence + '\0', mbstate wasn't initialized)
- fix return value when restarted.
XXX euctw and big5 are not tested.
- iso2022-jp
- fix mbrtowc with imcomplete sequence.
- etc
- make sure mbstate is initialized. (___rune_initstate is called)
primarily to fix mbsinit for iso2022.
- sync citrus Id