From f6e50e66ad9e75627caf800e0f0f24efac28e456 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 5 Nov 2002 19:21:56 +0000 Subject: [PATCH] Update. 2002-11-05 Jakub Jelinek * iconv/gconv_dl.c (free_mem): Clear loaded. * locale/loadarchive.c (_nl_archive_subfreeres): Call locale_data's cleanup if any. * sysdeps/unix/sysv/linux/fexecve.c: Include . --- ChangeLog | 8 ++++++++ iconv/gconv_dl.c | 3 ++- locale/loadarchive.c | 9 +++++++-- sysdeps/unix/sysv/linux/fexecve.c | 1 + 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2714b51..652f67b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ +2002-11-05 Jakub Jelinek + + * iconv/gconv_dl.c (free_mem): Clear loaded. + * locale/loadarchive.c (_nl_archive_subfreeres): Call locale_data's + cleanup if any. + 2002-11-05 Ulrich Drepper + * sysdeps/unix/sysv/linux/fexecve.c: Include . + * libio/ioseekoff.c: Remove INTDEF. Define _IO_seekoff_unlocked. Same as old code without locking. _IO_seekoff calls this function after locking the stream. diff --git a/iconv/gconv_dl.c b/iconv/gconv_dl.c index ff90a54..cc7627a 100644 --- a/iconv/gconv_dl.c +++ b/iconv/gconv_dl.c @@ -1,5 +1,5 @@ /* Handle loading/unloading of shared object for transformation. - Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 1997,1998,1999,2000,2001,2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -206,6 +206,7 @@ do_release_all (void *nodep) libc_freeres_fn (free_mem) { __tdestroy (loaded, do_release_all); + loaded = NULL; } diff --git a/locale/loadarchive.c b/locale/loadarchive.c index dbb4d7a..3fddc7d 100644 --- a/locale/loadarchive.c +++ b/locale/loadarchive.c @@ -510,8 +510,13 @@ _nl_archive_subfreeres (void) free (dead->name); for (category = 0; category < __LC_LAST; ++category) if (category != LC_ALL) - /* _nl_unload_locale just does this free for the archive case. */ - free (dead->data[category]); + { + /* _nl_unload_locale just does this free for the archive case. */ + if (dead->data[category]->private.cleanup) + (*dead->data[category]->private.cleanup) (dead->data[category]); + + free (dead->data[category]); + } free (dead); } archloaded = NULL; diff --git a/sysdeps/unix/sysv/linux/fexecve.c b/sysdeps/unix/sysv/linux/fexecve.c index dbf5690..a90364e 100644 --- a/sysdeps/unix/sysv/linux/fexecve.c +++ b/sysdeps/unix/sysv/linux/fexecve.c @@ -18,6 +18,7 @@ #include #include +#include #include #include -- 2.7.4