* wcsmbs/wcrtomb.c (__wcrtomb): Set end of buffer correctly if s
	== NULL.  Little optimization.

	* elf/dl-init.c (_dl_init): Correct typo (DT_PREINIT_ARRAY not
	DT_PREINIT_ARRAYSZ).
	Reported by Jes Sorensen <Jes.Sorensen@cern.ch>.
This commit is contained in:
Ulrich Drepper 2000-04-28 06:14:43 +00:00
parent 8651d8a218
commit a7f91846e9
5 changed files with 40 additions and 30 deletions

View File

@ -1,5 +1,12 @@
2000-04-27 Ulrich Drepper <drepper@redhat.com> 2000-04-27 Ulrich Drepper <drepper@redhat.com>
* wcsmbs/wcrtomb.c (__wcrtomb): Set end of buffer correctly if s
== NULL. Little optimization.
* elf/dl-init.c (_dl_init): Correct typo (DT_PREINIT_ARRAY not
DT_PREINIT_ARRAYSZ).
Reported by Jes Sorensen <Jes.Sorensen@cern.ch>.
* hesiod/nss_hesiod/hesiod-grp.c (_nss_hesiod_initgroups): Handle * hesiod/nss_hesiod/hesiod-grp.c (_nss_hesiod_initgroups): Handle
overflows in conversion from ASCII. overflows in conversion from ASCII.

View File

@ -1261,6 +1261,13 @@
* sysdeps/generic/statvfs64.c: Likewise. * sysdeps/generic/statvfs64.c: Likewise.
* sysdeps/unix/sysv/linux/statvfs64.c: Likewise. * sysdeps/unix/sysv/linux/statvfs64.c: Likewise.
1998-12-25 Geoff Keating <geoffk@ozemail.com.au>
* crypt/sysdeps/unix/ufc-crypt.h: Use <stdint.h>.
* crypt/configure: Delete the code dealing with building the add-on
outside glibc, as this doesn't work.
1998-12-25 Ulrich Drepper <drepper@cygnus.com> 1998-12-25 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-hash.h: Move to... * elf/dl-hash.h: Move to...
@ -1681,6 +1688,24 @@
* po/es.po: Update from translation team. * po/es.po: Update from translation team.
* po/fr.po: Likewise. * po/fr.po: Likewise.
1998-12-10 Geoff Keating <geoffk@ozemail.com.au>
* crypt/sysdeps/unix/crypt-entry.c: Don't include "patchlevel.h".
* crypt/sysdeps/unix/crypt.h: Move __crypt_r, __setkey_r,
__encrypt_r to...
* crypt/sysdeps/unix/crypt-private.h: ...here.
* crypt/sysdeps/unix/crypt.h: Add __restrict to the structure
parameters.
* crypt/sysdeps/unix/crypt-private.h: Likewise. Also add const to
first parameter of _ufc_mk_keytab_r.
* crypt/sysdeps/unix/crypt.c: Update prototypes.
* crypt/sysdeps/unix/crypt-entry.c: Likewise.
* crypt/sysdeps/unix/crypt_util.c: Likewise.
* crypt/sysdeps/unix/crypt-entry.c (crypt): Use __crypt_r not crypt_r.
1998-12-10 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> 1998-12-10 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nis/nss_compat/compat-pwd.c: Fix handling of +/- entries. * nis/nss_compat/compat-pwd.c: Fix handling of +/- entries.

View File

@ -1,24 +0,0 @@
1998-12-25 Geoff Keating <geoffk@ozemail.com.au>
* sysdeps/unix/ufc-crypt.h: Use <stdint.h>.
* configure: Delete the code dealing with building the add-on
outside glibc, as this doesn't work.
1998-12-10 Geoff Keating <geoffk@ozemail.com.au>
* sysdeps/unix/crypt-entry.c: Don't include "patchlevel.h".
* sysdeps/unix/crypt.h: Move __crypt_r, __setkey_r, __encrypt_r to...
* sysdeps/unix/crypt-private.h: ...here.
* sysdeps/unix/crypt.h: Add __restrict to the structure parameters.
* sysdeps/unix/crypt-private.h: Likewise. Also add const to
first parameter of _ufc_mk_keytab_r.
* sysdeps/unix/crypt.c: Update prototypes.
* sysdeps/unix/crypt-entry.c: Likewise.
* sysdeps/unix/crypt_util.c: Likewise.
* sysdeps/unix/crypt-entry.c (crypt): Use __crypt_r not crypt_r.
ChangeLog starts here, with version 2.0.96.

View File

@ -32,7 +32,7 @@ void
internal_function internal_function
_dl_init (struct link_map *main_map, int argc, char **argv, char **env) _dl_init (struct link_map *main_map, int argc, char **argv, char **env)
{ {
ElfW(Dyn) *preinit_array = main_map->l_info[DT_PREINIT_ARRAYSZ]; ElfW(Dyn) *preinit_array = main_map->l_info[DT_PREINIT_ARRAY];
struct r_debug *r; struct r_debug *r;
unsigned int i; unsigned int i;

View File

@ -43,9 +43,7 @@ __wcrtomb (char *s, wchar_t wc, mbstate_t *ps)
size_t result; size_t result;
size_t dummy; size_t dummy;
/* Tell where we want the result. */ /* Set information for this step. */
data.__outbuf = s;
data.__outbufend = s + MB_CUR_MAX;
data.__invocation_counter = 0; data.__invocation_counter = 0;
data.__internal_use = 1; data.__internal_use = 1;
data.__is_last = 1; data.__is_last = 1;
@ -55,12 +53,16 @@ __wcrtomb (char *s, wchar_t wc, mbstate_t *ps)
initial state. */ initial state. */
if (s == NULL) if (s == NULL)
{ {
data.__outbuf = buf; s = buf;
wc = L'\0'; wc = L'\0';
temp_state = *data.__statep; temp_state = *data.__statep;
data.__statep = &temp_state; data.__statep = &temp_state;
} }
/* Tell where we want to have the result. */
data.__outbuf = s;
data.__outbufend = s + MB_CUR_MAX;
/* Make sure we use the correct function. */ /* Make sure we use the correct function. */
update_conversion_ptrs (); update_conversion_ptrs ();
@ -98,7 +100,7 @@ __wcrtomb (char *s, wchar_t wc, mbstate_t *ps)
if (status == __GCONV_OK || status == __GCONV_EMPTY_INPUT if (status == __GCONV_OK || status == __GCONV_EMPTY_INPUT
|| status == __GCONV_FULL_OUTPUT) || status == __GCONV_FULL_OUTPUT)
result = data.__outbuf - (unsigned char *) (s ?: buf); result = data.__outbuf - (unsigned char *) s;
else else
{ {
result = (size_t) -1; result = (size_t) -1;