diff options
author | Andrew Bartlett <abartlet@samba.org> | 2011-06-22 09:58:59 +1000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2011-06-23 13:47:27 +0200 |
commit | de0e0119447060c64f4531c031e5509de3afc1b5 (patch) | |
tree | 777432b63b90070d4afddfeff5148ff7ffca36f5 | |
parent | 125a2ff262aa312df20eec68802fd5f8a47f492f (diff) | |
download | samba-de0e0119447060c64f4531c031e5509de3afc1b5.tar.gz samba-de0e0119447060c64f4531c031e5509de3afc1b5.tar.bz2 samba-de0e0119447060c64f4531c031e5509de3afc1b5.zip |
lib/util/charset: Remove autodetection of charset from LOCALE
In the past, our LOCALE would set the display charset of Samba. The
display charset has now been removed. This patch removes the support
code that detected the locale from the environment. We cannot safely
have 'unix charset' follow the locale (at it creates files on disk and
entries in databases that must not vary), so this code is unused.
As an example, imagine a database is manipulated in the
administrator's locale, and then read by smbd starting up in the
system default locale. Or smbd restarted by the administrator rather
than a startup script. Both of these situations could corrupt
databases or filenames on disk.
Andrew Bartlett
-rw-r--r-- | lib/util/charset/codepoints.c | 31 | ||||
-rw-r--r-- | source3/configure.in | 2 | ||||
-rw-r--r-- | source3/wscript | 4 |
3 files changed, 3 insertions, 34 deletions
diff --git a/lib/util/charset/codepoints.c b/lib/util/charset/codepoints.c index 305bfd717f..8cc33a9782 100644 --- a/lib/util/charset/codepoints.c +++ b/lib/util/charset/codepoints.c @@ -217,37 +217,6 @@ static int close_iconv_handle(struct smb_iconv_handle *data) return 0; } -static const char *map_locale(const char *charset) -{ - if (strcmp(charset, "LOCALE") != 0) { - return charset; - } -#if defined(HAVE_NL_LANGINFO) && defined(CODESET) - { - const char *ln; - smb_iconv_t handle; - - ln = nl_langinfo(CODESET); - if (ln == NULL) { - DEBUG(1,("Unable to determine charset for LOCALE - using ASCII\n")); - return "ASCII"; - } - /* Check whether the charset name is supported - by iconv */ - handle = smb_iconv_open(ln, "UCS-2LE"); - if (handle == (smb_iconv_t) -1) { - DEBUG(5,("Locale charset '%s' unsupported, using ASCII instead\n", ln)); - return "ASCII"; - } else { - DEBUG(5,("Substituting charset '%s' for LOCALE\n", ln)); - smb_iconv_close(handle); - } - return ln; - } -#endif - return "ASCII"; -} - /* the old_ic is passed in here as the smb_iconv_handle structure is used as a global pointer in some places (eg. python modules). We diff --git a/source3/configure.in b/source3/configure.in index e85d9f1f47..d0f841f017 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -1091,7 +1091,7 @@ AC_CHECK_FUNCS(getpwent_r) AC_CHECK_FUNCS(getdents64) AC_CHECK_FUNCS(setenv strcasecmp fcvt fcvtl) AC_CHECK_FUNCS(syslog vsyslog timegm) -AC_CHECK_FUNCS(setlocale nl_langinfo) +AC_CHECK_FUNCS(setlocale) AC_CHECK_FUNCS(nanosleep,,[AC_CHECK_LIB_EXT(rt, LIBS, nanosleep)]) AC_CHECK_FUNCS(lutimes futimes utimensat futimens) AC_CHECK_FUNCS(mlock munlock mlockall munlockall) diff --git a/source3/wscript b/source3/wscript index 12bb08bfd7..a3a14f0607 100644 --- a/source3/wscript +++ b/source3/wscript @@ -131,7 +131,7 @@ def configure(conf): conf.CHECK_FUNCS('opendir64 readdir64 seekdir64 telldir64 rewinddir64 closedir64') conf.CHECK_FUNCS('fdopendir fdopendir64') conf.CHECK_FUNCS('getpwent_r getdents64 setenv strcasecmp fcvt fcvtl') - conf.CHECK_FUNCS('syslog vsyslog timegm setlocale nl_langinfo') + conf.CHECK_FUNCS('syslog vsyslog timegm setlocale') conf.CHECK_FUNCS_IN('nanosleep', 'rt') conf.CHECK_FUNCS('lutimes futimes utimensat futimens') conf.CHECK_FUNCS('mlock munlock mlockall munlockall') @@ -289,7 +289,7 @@ inotify_init lgetea lgetxattr listea listxattr llistea llistxattr llseek _llseek __llseek lremoveea lremovexattr _lseek __lseek lseek64 lsetea lsetxattr _lstat __lstat lstat64 _lstat64 __lstat64 lutimes __lxstat memalign mknod mknod64 mlock mlockall munlock munlockall -nl_langinfo _open __open open64 _open64 __open64 _opendir __opendir +_open __open open64 _open64 __open64 _opendir __opendir opendir64 pathconf poll posix_fallocate posix_fallocate64 posix_memalign prctl pread _pread __pread pread64 _pread64 __pread64 pwrite _pwrite __pwrite pwrite64 _pwrite64 |