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:
parent
125a2ff262
commit
de0e011944
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user