From 2845ceafb06d728b60a9d79d9d51a966e5ef66c2 Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Wed, 15 Feb 2023 13:49:04 -0700 Subject: [PATCH] Handle "locale -a" returning both C.UTF-8 and C.utf8. It is possible to have mutiple matches from the output of "locale -a". Just take the first one. Fixes GitHub issue #241. --- lib/eventlog/Makefile.in | 2 +- lib/iolog/Makefile.in | 10 +++++----- lib/util/Makefile.in | 6 +++--- logsrvd/Makefile.in | 6 +++--- plugins/python/Makefile.in | 2 +- plugins/sudoers/Makefile.in | 10 +++++----- src/Makefile.in | 2 +- 7 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lib/eventlog/Makefile.in b/lib/eventlog/Makefile.in index 190470a82..cd713c483 100644 --- a/lib/eventlog/Makefile.in +++ b/lib/eventlog/Makefile.in @@ -152,7 +152,7 @@ check-fuzzer: check: $(TEST_PROGS) check-fuzzer @if test X"$(cross_compiling)" != X"yes"; then \ - l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C\.UTF-?8$$' | $(SED) 1q` || true; \ test -n "$$l" || l="C"; \ LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ diff --git a/lib/iolog/Makefile.in b/lib/iolog/Makefile.in index 4e1f3a4bc..61bc05815 100644 --- a/lib/iolog/Makefile.in +++ b/lib/iolog/Makefile.in @@ -200,7 +200,7 @@ fuzz_iolog_json_seed_corpus.zip: rm -rf $$tdir run-fuzz_iolog_json: fuzz_iolog_json - l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C\.UTF-?8$$' | $(SED) 1q` || true; \ test -n "$$l" || l="C"; \ LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ @@ -225,7 +225,7 @@ fuzz_iolog_legacy_seed_corpus.zip: rm -rf $$tdir run-fuzz_iolog_legacy: fuzz_iolog_legacy - l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C\.UTF-?8$$' | $(SED) 1q` || true; \ test -n "$$l" || l="C"; \ LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ @@ -250,7 +250,7 @@ fuzz_iolog_timing_seed_corpus.zip: rm -rf $$tdir run-fuzz_iolog_timing: fuzz_iolog_timing - l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C\.UTF-?8$$' | $(SED) 1q` || true; \ test -n "$$l" || l="C"; \ LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ @@ -302,7 +302,7 @@ fuzz: run-fuzz_iolog_json run-fuzz_iolog_legacy run-fuzz_iolog_timing check-fuzzer: $(FUZZ_PROGS) @if test X"$(cross_compiling)" != X"yes"; then \ - l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C\.UTF-?8$$' | $(SED) 1q` || true; \ test -n "$$l" || l="C"; \ LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ @@ -319,7 +319,7 @@ check-fuzzer: $(FUZZ_PROGS) check: $(TEST_PROGS) check-fuzzer @if test X"$(cross_compiling)" != X"yes"; then \ - l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C\.UTF-?8$$' | $(SED) 1q` || true; \ test -n "$$l" || l="C"; \ LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ diff --git a/lib/util/Makefile.in b/lib/util/Makefile.in index 9a73f201e..7898eecea 100644 --- a/lib/util/Makefile.in +++ b/lib/util/Makefile.in @@ -360,7 +360,7 @@ fuzz_sudo_conf_seed_corpus.zip: rm -rf $$tdir run-fuzz_sudo_conf: fuzz_sudo_conf - l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C\.UTF-?8$$' | $(SED) 1q` || true; \ test -n "$$l" || l="C"; \ LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ @@ -424,7 +424,7 @@ fuzz: run-fuzz_sudo_conf check-fuzzer: $(FUZZ_PROGS) @if test X"$(cross_compiling)" != X"yes"; then \ - l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C\.UTF-?8$$' | $(SED) 1q` || true; \ test -n "$$l" || l="C"; \ LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ @@ -438,7 +438,7 @@ check-fuzzer: $(FUZZ_PROGS) # Note: some regress checks are run from srcdir for consistent error messages check: $(TEST_PROGS) check-fuzzer @if test X"$(cross_compiling)" != X"yes"; then \ - l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C\.UTF-?8$$' | $(SED) 1q` || true; \ test -n "$$l" || l="C"; \ LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ diff --git a/logsrvd/Makefile.in b/logsrvd/Makefile.in index 310ec1182..2a1f0d1a5 100644 --- a/logsrvd/Makefile.in +++ b/logsrvd/Makefile.in @@ -195,7 +195,7 @@ fuzz_logsrvd_conf_seed_corpus.zip: rm -rf $$tdir run-fuzz_logsrvd_conf: fuzz_logsrvd_conf - l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C\.UTF-?8$$' | $(SED) 1q` || true; \ test -n "$$l" || l="C"; \ LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ @@ -256,7 +256,7 @@ fuzz: run-fuzz_logsrvd_conf check-fuzzer: $(FUZZ_PROGS) @if test X"$(cross_compiling)" != X"yes"; then \ - l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C\.UTF-?8$$' | $(SED) 1q` || true; \ test -n "$$l" || l="C"; \ LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ @@ -269,7 +269,7 @@ check-fuzzer: $(FUZZ_PROGS) check: $(TEST_PROGS) check-fuzzer @if test X"$(cross_compiling)" != X"yes"; then \ - l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C\.UTF-?8$$' | $(SED) 1q` || true; \ test -n "$$l" || l="C"; \ LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ diff --git a/plugins/python/Makefile.in b/plugins/python/Makefile.in index 4cac26c72..e79f57061 100644 --- a/plugins/python/Makefile.in +++ b/plugins/python/Makefile.in @@ -229,7 +229,7 @@ check-fuzzer: check: $(TEST_PROGS) check-fuzzer @if test X"$(cross_compiling)" != X"yes"; then \ - l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C\.UTF-?8$$' | $(SED) 1q` || true; \ test -n "$$l" || l="C"; \ LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ diff --git a/plugins/sudoers/Makefile.in b/plugins/sudoers/Makefile.in index c1a72f1fd..3dcc746f2 100644 --- a/plugins/sudoers/Makefile.in +++ b/plugins/sudoers/Makefile.in @@ -423,7 +423,7 @@ fuzz_policy_seed_corpus.zip: rm -rf $$tdir run-fuzz_policy: fuzz_policy - l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C\.UTF-?8$$' | $(SED) 1q` || true; \ test -n "$$l" || l="C"; \ LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ @@ -448,7 +448,7 @@ fuzz_sudoers_seed_corpus.zip: rm -rf $$tdir run-fuzz_sudoers: fuzz_sudoers - l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C\.UTF-?8$$' | $(SED) 1q` || true; \ test -n "$$l" || l="C"; \ LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ @@ -473,7 +473,7 @@ fuzz_sudoers_ldif_seed_corpus.zip: rm -rf $$tdir run-fuzz_sudoers_ldif: fuzz_sudoers_ldif - l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C\.UTF-?8$$' | $(SED) 1q` || true; \ test -n "$$l" || l="C"; \ LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ @@ -621,7 +621,7 @@ fuzz: run-fuzz_policy run-fuzz_sudoers run-fuzz_sudoers_ldif check-fuzzer: $(FUZZ_PROGS) @if test X"$(cross_compiling)" != X"yes"; then \ - l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C\.UTF-?8$$' | $(SED) 1q` || true; \ test -n "$$l" || l="C"; \ LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ @@ -638,7 +638,7 @@ check-fuzzer: $(FUZZ_PROGS) check: $(TEST_PROGS) visudo testsudoers cvtsudoers check-fuzzer @if test X"$(cross_compiling)" != X"yes"; then \ - l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C\.UTF-?8$$' | $(SED) 1q` || true; \ test -n "$$l" || l="C"; \ LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ diff --git a/src/Makefile.in b/src/Makefile.in index 2785d7839..d9fa3a693 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -332,7 +332,7 @@ check-fuzzer: check: $(TEST_PROGS) check-fuzzer @if test X"$(cross_compiling)" != X"yes"; then \ - l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C\.UTF-?8$$' | $(SED) 1q` || true; \ test -n "$$l" || l="C"; \ LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \