]> granicus.if.org Git - sudo/commitdiff
Set the warn/fatal locale helper function in sudoers_policy_init()
authorTodd C. Miller <Todd.Miller@courtesan.com>
Wed, 20 Jul 2016 21:52:32 +0000 (15:52 -0600)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Wed, 20 Jul 2016 21:52:32 +0000 (15:52 -0600)
so warning messages during sudoers loading are displayed in the
user's own locale.

plugins/sudoers/sudoers.c

index b02aa1962b538d19c98d37815942b02982cf64d8..62bff2dae3b66d00fad295ef1d61b27be868ec75 100644 (file)
@@ -187,6 +187,7 @@ sudoers_policy_init(void *info, char * const envp[])
      * Uses the C locale unless another is specified in sudoers.
      */
     sudoers_setlocale(SUDOERS_LOCALE_SUDOERS, &oldlocale);
+    sudo_warn_set_locale_func(sudoers_warn_setlocale);
     TAILQ_FOREACH_SAFE(nss, snl, entries, nss_next) {
         if (nss->open(nss) == 0 && nss->parse(nss) == 0) {
             sources++;
@@ -246,6 +247,7 @@ cleanup:
        rval = -1;
 
     /* Restore user's locale. */
+    sudo_warn_set_locale_func(NULL);
     sudoers_setlocale(oldlocale, NULL);
 
     debug_return_int(rval);