1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-27 22:50:26 +03:00

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
This commit is contained in:
Andrew Bartlett 2011-06-22 09:58:59 +10:00
parent 125a2ff262
commit de0e011944
3 changed files with 3 additions and 34 deletions

View File

@ -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

View File

@ -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)

View File

@ -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