diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-04-28 06:14:43 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-04-28 06:14:43 +0000 |
commit | a7f91846e95ea8ae3d8298063a4cf2972b5f98b2 (patch) | |
tree | 1fca02f50d006172c8249272649004361ba46a2d | |
parent | 8651d8a218babc9e9ccc865a68017f12c588ca23 (diff) | |
download | glibc-a7f91846e95ea8ae3d8298063a4cf2972b5f98b2.tar.gz |
Update.
* 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>.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | ChangeLog.9 | 25 | ||||
-rw-r--r-- | crypt/ChangeLog.old | 24 | ||||
-rw-r--r-- | elf/dl-init.c | 2 | ||||
-rw-r--r-- | wcsmbs/wcrtomb.c | 12 |
5 files changed, 40 insertions, 30 deletions
@@ -1,5 +1,12 @@ 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 overflows in conversion from ASCII. diff --git a/ChangeLog.9 b/ChangeLog.9 index 77330289fb..055a8aa746 100644 --- a/ChangeLog.9 +++ b/ChangeLog.9 @@ -1261,6 +1261,13 @@ * sysdeps/generic/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> * elf/dl-hash.h: Move to... @@ -1681,6 +1688,24 @@ * po/es.po: Update from translation team. * 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> * nis/nss_compat/compat-pwd.c: Fix handling of +/- entries. diff --git a/crypt/ChangeLog.old b/crypt/ChangeLog.old deleted file mode 100644 index 8fba95e7f8..0000000000 --- a/crypt/ChangeLog.old +++ /dev/null @@ -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. diff --git a/elf/dl-init.c b/elf/dl-init.c index dfef83dd6f..683b94b9c7 100644 --- a/elf/dl-init.c +++ b/elf/dl-init.c @@ -32,7 +32,7 @@ void internal_function _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; unsigned int i; diff --git a/wcsmbs/wcrtomb.c b/wcsmbs/wcrtomb.c index 644d26bbc8..7aef505ef3 100644 --- a/wcsmbs/wcrtomb.c +++ b/wcsmbs/wcrtomb.c @@ -43,9 +43,7 @@ __wcrtomb (char *s, wchar_t wc, mbstate_t *ps) size_t result; size_t dummy; - /* Tell where we want the result. */ - data.__outbuf = s; - data.__outbufend = s + MB_CUR_MAX; + /* Set information for this step. */ data.__invocation_counter = 0; data.__internal_use = 1; data.__is_last = 1; @@ -55,12 +53,16 @@ __wcrtomb (char *s, wchar_t wc, mbstate_t *ps) initial state. */ if (s == NULL) { - data.__outbuf = buf; + s = buf; wc = L'\0'; temp_state = *data.__statep; 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. */ update_conversion_ptrs (); @@ -98,7 +100,7 @@ __wcrtomb (char *s, wchar_t wc, mbstate_t *ps) if (status == __GCONV_OK || status == __GCONV_EMPTY_INPUT || status == __GCONV_FULL_OUTPUT) - result = data.__outbuf - (unsigned char *) (s ?: buf); + result = data.__outbuf - (unsigned char *) s; else { result = (size_t) -1; |