krb5 commit: Enable all localizations in main functions

Benjamin Kaduk kaduk at MIT.EDU
Fri Jul 6 14:07:45 EDT 2012


https://github.com/krb5/krb5/commit/75c7c600b49a7f1d5cf95260fc073cb4ba5929cd
commit 75c7c600b49a7f1d5cf95260fc073cb4ba5929cd
Author: Ben Kaduk <kaduk at mit.edu>
Date:   Thu Jul 5 14:56:50 2012 -0400

    Enable all localizations in main functions
    
    Bite the bullet and pass LC_ALL to setlocale() instead of just
    LC_MESSAGES.  Calls to setlocale() itself were introduced in
    fabbf9e443459e8c0161c84563690ed70c7f6a61 for ticket 6918, but
    only for LC_MESSAGES since only localized strings were needed
    and that was the most conservative option.
    However, klist, kadmin, and kinit (and perhaps others) would benefit
    from localized formats for times (i.e., LC_TIME).  If potentially
    localized data is being sent on the wire, that is a bug that should
    be fixed.  No such bugs are found with the current test suite, so we
    are comfortable enabling LC_ALL at this time.
    
    ticket: 7192

 src/clients/kdestroy/kdestroy.c                 |    2 +-
 src/clients/kinit/kinit.c                       |    2 +-
 src/clients/klist/klist.c                       |    2 +-
 src/clients/kpasswd/kpasswd.c                   |    2 +-
 src/clients/kswitch/kswitch.c                   |    2 +-
 src/clients/kvno/kvno.c                         |    2 +-
 src/kadmin/cli/ss_wrapper.c                     |    2 +-
 src/kadmin/dbutil/kdb5_util.c                   |    2 +-
 src/kadmin/ktutil/ktutil.c                      |    2 +-
 src/kadmin/server/ovsec_kadmd.c                 |    2 +-
 src/kadmin/testing/scripts/env-setup.shin       |    5 +++--
 src/kdc/main.c                                  |    2 +-
 src/plugins/kdb/ldap/ldap_util/kdb5_ldap_util.c |    2 +-
 src/slave/kprop.c                               |    2 +-
 src/slave/kpropd.c                              |    2 +-
 src/slave/kproplog.c                            |    2 +-
 src/tests/dejagnu/config/default.exp            |    7 ++++---
 src/tests/misc/test_chpw_message.c              |    2 +-
 src/util/k5test.py                              |    5 +++--
 19 files changed, 26 insertions(+), 23 deletions(-)

diff --git a/src/clients/kdestroy/kdestroy.c b/src/clients/kdestroy/kdestroy.c
index 176f6e2..2d13cd9 100644
--- a/src/clients/kdestroy/kdestroy.c
+++ b/src/clients/kdestroy/kdestroy.c
@@ -81,7 +81,7 @@ main(argc, argv)
     int quiet = 0;
     int all = 0;
 
-    setlocale(LC_MESSAGES, "");
+    setlocale(LC_ALL, "");
     progname = GET_PROGNAME(argv[0]);
 
     while ((c = getopt(argc, argv, "54Aqc:")) != -1) {
diff --git a/src/clients/kinit/kinit.c b/src/clients/kinit/kinit.c
index 1bf7564..b24c32a 100644
--- a/src/clients/kinit/kinit.c
+++ b/src/clients/kinit/kinit.c
@@ -820,7 +820,7 @@ main(argc, argv)
     struct k5_data k5;
     int authed_k5 = 0;
 
-    setlocale(LC_MESSAGES, "");
+    setlocale(LC_ALL, "");
     progname = GET_PROGNAME(argv[0]);
 
     /* Ensure we can be driven from a pipe */
diff --git a/src/clients/klist/klist.c b/src/clients/klist/klist.c
index ce86597..402858e 100644
--- a/src/clients/klist/klist.c
+++ b/src/clients/klist/klist.c
@@ -118,7 +118,7 @@ main(argc, argv)
     char *name;
     int mode;
 
-    setlocale(LC_MESSAGES, "");
+    setlocale(LC_ALL, "");
     progname = GET_PROGNAME(argv[0]);
 
     name = NULL;
diff --git a/src/clients/kpasswd/kpasswd.c b/src/clients/kpasswd/kpasswd.c
index 7aed0f1..4fc773e 100644
--- a/src/clients/kpasswd/kpasswd.c
+++ b/src/clients/kpasswd/kpasswd.c
@@ -60,7 +60,7 @@ int main(int argc, char *argv[])
     int result_code;
     krb5_data result_code_string, result_string;
 
-    setlocale(LC_MESSAGES, "");
+    setlocale(LC_ALL, "");
     if (argc > 2) {
         fprintf(stderr, _("usage: %s [principal]\n"), argv[0]);
         exit(1);
diff --git a/src/clients/kswitch/kswitch.c b/src/clients/kswitch/kswitch.c
index 42cc9d6..6c721d2 100644
--- a/src/clients/kswitch/kswitch.c
+++ b/src/clients/kswitch/kswitch.c
@@ -57,7 +57,7 @@ main(int argc, char **argv)
     const char *cache_name = NULL, *princ_name = NULL;
     krb5_boolean errflag = FALSE;
 
-    setlocale(LC_MESSAGES, "");
+    setlocale(LC_ALL, "");
     progname = GET_PROGNAME(argv[0]);
 
     while ((c = getopt(argc, argv, "c:p:")) != -1) {
diff --git a/src/clients/kvno/kvno.c b/src/clients/kvno/kvno.c
index 6a58d01..9b4f205 100644
--- a/src/clients/kvno/kvno.c
+++ b/src/clients/kvno/kvno.c
@@ -68,7 +68,7 @@ int main(int argc, char *argv[])
     char *sname = NULL, *for_user = NULL;
     int canon = 0, unknown = 0, proxy = 0;
 
-    setlocale(LC_MESSAGES, "");
+    setlocale(LC_ALL, "");
     set_com_err_hook (extended_com_err_fn);
 
     prog = strrchr(argv[0], '/');
diff --git a/src/kadmin/cli/ss_wrapper.c b/src/kadmin/cli/ss_wrapper.c
index f86c215..bf884d1 100644
--- a/src/kadmin/cli/ss_wrapper.c
+++ b/src/kadmin/cli/ss_wrapper.c
@@ -39,7 +39,7 @@ main(int argc, char *argv[])
     krb5_error_code retval;
     int sci_idx, code = 0;
 
-    setlocale(LC_MESSAGES, "");
+    setlocale(LC_ALL, "");
     whoami = ((whoami = strrchr(argv[0], '/')) ? whoami+1 : argv[0]);
 
     request = kadmin_startup(argc, argv);
diff --git a/src/kadmin/dbutil/kdb5_util.c b/src/kadmin/dbutil/kdb5_util.c
index df9c080..e4d8d6c 100644
--- a/src/kadmin/dbutil/kdb5_util.c
+++ b/src/kadmin/dbutil/kdb5_util.c
@@ -197,7 +197,7 @@ int main(argc, argv)
     int cmd_argc;
     krb5_error_code retval;
 
-    setlocale(LC_MESSAGES, "");
+    setlocale(LC_ALL, "");
     set_com_err_hook(extended_com_err_fn);
 
     /*
diff --git a/src/kadmin/ktutil/ktutil.c b/src/kadmin/ktutil/ktutil.c
index c1106b1..a969a46 100644
--- a/src/kadmin/ktutil/ktutil.c
+++ b/src/kadmin/ktutil/ktutil.c
@@ -45,7 +45,7 @@ int main(argc, argv)
     krb5_error_code retval;
     int sci_idx;
 
-    setlocale(LC_MESSAGES, "");
+    setlocale(LC_ALL, "");
     retval = krb5_init_context(&kcontext);
     if (retval) {
         com_err(argv[0], retval, _("while initializing krb5"));
diff --git a/src/kadmin/server/ovsec_kadmd.c b/src/kadmin/server/ovsec_kadmd.c
index 6859144..0976a8a 100644
--- a/src/kadmin/server/ovsec_kadmd.c
+++ b/src/kadmin/server/ovsec_kadmd.c
@@ -226,7 +226,7 @@ int main(int argc, char *argv[])
 
     verto_ctx *ctx;
 
-    setlocale(LC_MESSAGES, "");
+    setlocale(LC_ALL, "");
     setvbuf(stderr, NULL, _IONBF, 0);
 
     /* This is OID value the Krb5_Name NameType */
diff --git a/src/kadmin/testing/scripts/env-setup.shin b/src/kadmin/testing/scripts/env-setup.shin
index de1578b..11d018a 100755
--- a/src/kadmin/testing/scripts/env-setup.shin
+++ b/src/kadmin/testing/scripts/env-setup.shin
@@ -81,8 +81,9 @@ KRB5_KTNAME=$K5ROOT/ovsec_adm.srvtab; export KRB5_KTNAME
 KRB5_CLIENT_KTNAME=$K5ROOT/client_keytab; export KRB5_CLIENT_KTNAME
 KRB5CCNAME=$K5ROOT/krb5cc_unit-test; export KRB5CCNAME
 
-# Make sure we don't get confused by translated messages.
-LC_MESSAGES=C; export LC_MESSAGES
+# Make sure we don't get confused by translated messages
+# or localized times.
+LC_ALL=C; export LC_ALL
 
 if [ "$TEST_SERVER" != "" ]; then
 	MAKE_KEYTAB="$MAKE_KEYTAB -server $TEST_SERVER"
diff --git a/src/kdc/main.c b/src/kdc/main.c
index b119dd5..4c8bf88 100644
--- a/src/kdc/main.c
+++ b/src/kdc/main.c
@@ -974,7 +974,7 @@ int main(int argc, char **argv)
     int errout = 0;
     int i;
 
-    setlocale(LC_MESSAGES, "");
+    setlocale(LC_ALL, "");
     if (strrchr(argv[0], '/'))
         argv[0] = strrchr(argv[0], '/')+1;
 
diff --git a/src/plugins/kdb/ldap/ldap_util/kdb5_ldap_util.c b/src/plugins/kdb/ldap/ldap_util/kdb5_ldap_util.c
index 6c81083..6fb458d 100644
--- a/src/plugins/kdb/ldap/ldap_util/kdb5_ldap_util.c
+++ b/src/plugins/kdb/ldap/ldap_util/kdb5_ldap_util.c
@@ -261,7 +261,7 @@ main(int argc, char *argv[])
     /*
      * Ensure that "progname" is set before calling com_err.
      */
-    setlocale(LC_MESSAGES, "");
+    setlocale(LC_ALL, "");
     progname = (strrchr(argv[0], '/') ? strrchr(argv[0], '/')+1 : argv[0]);
 
     retval = kadm5_init_krb5_context(&util_context);
diff --git a/src/slave/kprop.c b/src/slave/kprop.c
index 7f2bc00..a8c55f3 100644
--- a/src/slave/kprop.c
+++ b/src/slave/kprop.c
@@ -97,7 +97,7 @@ main(argc, argv)
     krb5_creds *my_creds;
     krb5_auth_context auth_context;
 
-    setlocale(LC_MESSAGES, "");
+    setlocale(LC_ALL, "");
     retval = krb5_init_context(&context);
     if (retval) {
         com_err(argv[0], retval, _("while initializing krb5"));
diff --git a/src/slave/kpropd.c b/src/slave/kpropd.c
index 14304c4..c3ac3a8 100644
--- a/src/slave/kpropd.c
+++ b/src/slave/kpropd.c
@@ -191,7 +191,7 @@ main(argc, argv)
     int ret = 0;
     kdb_log_context *log_ctx;
 
-    setlocale(LC_MESSAGES, "");
+    setlocale(LC_ALL, "");
     PRS(argv);
 
     log_ctx = kpropd_context->kdblog_context;
diff --git a/src/slave/kproplog.c b/src/slave/kproplog.c
index e8aac1e..b97604a 100644
--- a/src/slave/kproplog.c
+++ b/src/slave/kproplog.c
@@ -495,7 +495,7 @@ main(int argc, char **argv)
     kdb_hlog_t          *ulog = NULL;
     char                **db_args = NULL; /* XXX */
 
-    setlocale(LC_MESSAGES, "");
+    setlocale(LC_ALL, "");
 
 #if !defined(TEXT_DOMAIN)
 #define TEXT_DOMAIN "SYS_TEST"
diff --git a/src/tests/dejagnu/config/default.exp b/src/tests/dejagnu/config/default.exp
index 192ac6d..c906bf1 100644
--- a/src/tests/dejagnu/config/default.exp
+++ b/src/tests/dejagnu/config/default.exp
@@ -643,9 +643,10 @@ foreach i $runvarlist {
 	verbose "savelist $envvars_tosave"
 	lappend krb5_init_vars $i
     }
-    # Make sure we don't get confused by translated messages.
-    lappend envvars_tosave "LC_MESSAGES"
-    lappend krb5_init_vars "LC_MESSAGES=C"
+    # Make sure we don't get confused by translated messages
+    # or localized times.
+    lappend envvars_tosave "LC_ALL"
+    lappend krb5_init_vars "LC_ALL=C"
 }
 set envstackp 0
 envstack_push
diff --git a/src/tests/misc/test_chpw_message.c b/src/tests/misc/test_chpw_message.c
index aef96b1..ba6fa18 100644
--- a/src/tests/misc/test_chpw_message.c
+++ b/src/tests/misc/test_chpw_message.c
@@ -116,7 +116,7 @@ main(void)
     krb5_context context;
     char *msg;
 
-    setlocale(LC_MESSAGES, "C");
+    setlocale(LC_ALL, "C");
 
     check(krb5_init_context(&context));
 
diff --git a/src/util/k5test.py b/src/util/k5test.py
index c5669be..b5f6d15 100644
--- a/src/util/k5test.py
+++ b/src/util/k5test.py
@@ -518,8 +518,9 @@ def _build_env():
             env[k] = os.path.join(buildtop, v)
         else:
             env[k] = v
-    # Make sure we don't get confused by translated messages.
-    env['LC_MESSAGES'] = 'C'
+    # Make sure we don't get confused by translated messages
+    # or localized times.
+    env['LC_ALL'] = 'C'
     return env
 
 


More information about the cvs-krb5 mailing list