From a7f91846e95ea8ae3d8298063a4cf2972b5f98b2 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 28 Apr 2000 06:14:43 +0000 Subject: [PATCH] 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 . --- ChangeLog | 7 +++++++ ChangeLog.9 | 25 +++++++++++++++++++++++++ crypt/ChangeLog.old | 24 ------------------------ elf/dl-init.c | 2 +- wcsmbs/wcrtomb.c | 12 +++++++----- 5 files changed, 40 insertions(+), 30 deletions(-) delete mode 100644 crypt/ChangeLog.old diff --git a/ChangeLog b/ChangeLog index 7b8479673c..e7c3bda0ba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2000-04-27 Ulrich Drepper + * 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 . + * 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 + + * crypt/sysdeps/unix/ufc-crypt.h: Use . + + * crypt/configure: Delete the code dealing with building the add-on + outside glibc, as this doesn't work. + 1998-12-25 Ulrich Drepper * 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 + + * 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 * 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 - - * sysdeps/unix/ufc-crypt.h: Use . - - * configure: Delete the code dealing with building the add-on - outside glibc, as this doesn't work. - -1998-12-10 Geoff Keating - - * 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;