[Pkg-samba-maint] Bug#593059: The locale setting affects Samba daemons.

Steve Langasek vorlon at debian.org
Sun Aug 15 08:55:58 UTC 2010


tags 593059 moreinfo unreproducible
thanks

On Sun, Aug 15, 2010 at 05:42:21PM +0900, TAKAHASHI Motonobu wrote:
> Package: samba
> Version: 2:3.2.5-4lenny12
> Severity: minor

> If smbd starts under ja_JP.eucJP or such locales where PAM messages are i18n'ed,
> "pam password change =yes" will not work because it expects English
> PAM messages
> but i18n'ed PAM messages are replied.

Why are localized messages being sent when there is this code in
smbd/chgpasswd.c?:

#ifdef WITH_PAM
        if (lp_pam_password_change()) {
                bool ret;
#ifdef HAVE_SETLOCALE
                const char *prevlocale = setlocale(LC_ALL, "C");
#endif

                if (as_root)
                        become_root();

                if (pass) {
                        ret = smb_pam_passchange(pass->pw_name, oldpass,
newpass);
                } else {
                        ret = smb_pam_passchange(name, oldpass, newpass);
                }

                if (as_root)
                        unbecome_root();

#ifdef HAVE_SETLOCALE
                setlocale(LC_ALL, prevlocale);
#endif

                return ret;
        }
#endif

Samba already includes code specifically to set the locale to C before
invoking PAM in order to avoid this issue.  So where are these localized
messages coming from?

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek at ubuntu.com                                     vorlon at debian.org





More information about the Pkg-samba-maint mailing list