diff --git a/glibc.spec b/glibc.spec index 4a5ee3f5ac775cbb1ae7f6ccc45df61183f817fd..e7ad1e784710b5d9226091e60fe9a564a9cd5f79 100644 --- a/glibc.spec +++ b/glibc.spec @@ -59,7 +59,7 @@ ############################################################################## Name: glibc Version: 2.28 -Release: 43 +Release: 44 Summary: The GNU libc libraries License: %{all_license} URL: http://www.gnu.org/software/glibc/ @@ -91,6 +91,8 @@ Patch14: Fix-memory-leak-in-__printf_fp_l-bug-26215.patch Patch15: Fix-CVE-2020-6096-001.patch Patch16: Fix-CVE-2020-6096-002.patch +Patch9000: remove-country-selection-from-tzselect.patch + Provides: ldconfig rtld(GNU_HASH) bundled(gnulib) BuildRequires: audit-libs-devel >= 1.1.3, sed >= 3.95, libcap-devel, gettext @@ -1085,6 +1087,9 @@ fi %doc hesiod/README.hesiod %changelog +*Mon Sep 7 2020 MarsChan - 2.28-44 +- For political reasons, remove country selection from tzselect.ksh + * Mon Jul 20 2020 liqingqing - 2.28-43 - fix CVE-2020-6096 - fix bugzilla 26137, 26214, 26215 diff --git a/remove-country-selection-from-tzselect.patch b/remove-country-selection-from-tzselect.patch new file mode 100644 index 0000000000000000000000000000000000000000..fee7e24b05663ce62da9cf852100cd0e22378aa8 --- /dev/null +++ b/remove-country-selection-from-tzselect.patch @@ -0,0 +1,152 @@ +From 8e6578de70468e9bd0b7b86bf6edf50b15df05af Mon Sep 17 00:00:00 2001 +From: liusirui +Date: Tue, 3 Sep 2019 15:14:26 +0800 +Subject: [PATCH] remove country selection from tzselect.ksh + +--- + timezone/tzselect.ksh | 98 +++++++++---------------------------------- + 1 file changed, 20 insertions(+), 78 deletions(-) + +diff --git a/timezone/tzselect.ksh b/timezone/tzselect.ksh +index d2c3a6d1..63b5db20 100755 +--- a/timezone/tzselect.ksh ++++ b/timezone/tzselect.ksh +@@ -52,7 +52,7 @@ say() { + + coord= + location_limit=10 +-zonetabtype=zone1970 ++zonetabtype=zone + + usage="Usage: tzselect [--version] [--help] [-c COORD] [-n LIMIT] + Select a time zone interactively. +@@ -398,95 +398,38 @@ while + '` + ;; + *) +- # Get list of names of countries in the continent or ocean. +- countries=`$AWK \ ++ # Get list of regions in the continent or ocean. ++ timezones=`$AWK \ + -v continent="$continent" \ + -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ + ' + BEGIN { FS = "\t" } + /^#/ { next } + $3 ~ ("^" continent "/") { +- ncc = split($1, cc, /,/) ++ ncc = split($3, cc, /,/) + for (i = 1; i <= ncc; i++) + if (!cc_seen[cc[i]]++) cc_list[++ccs] = cc[i] + } + END { +- while (getline &2 'Please select a country' \ +- 'whose clocks agree with yours.' +- doselect $countries +- country=$select_result;; +- *) +- country=$countries +- esac +- +- +- # Get list of names of time zone rule regions in the country. +- regions=`$AWK \ +- -v country="$country" \ +- -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ +- ' +- BEGIN { +- FS = "\t" +- cc = country +- while (getline &2 'Please select one of the following' \ +- 'time zone regions.' +- doselect $regions +- region=$select_result;; +- *) +- region=$regions +- esac ++ regions=[] ++ index=0 ++ for item in $timezones; do ++ regions[$index]=`echo $item | awk -F '/' '{print $2}'` ++ index=$(($index+1)) ++ done ++ echo >&2 'Please select a timezone' \ ++ 'whose clocks agree with yours.' ++ doselect ${regions[@]} ++ region=$select_result + + # Determine TZ from country and region. +- TZ=`$AWK \ +- -v country="$country" \ +- -v region="$region" \ +- -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ +- ' +- BEGIN { +- FS = "\t" +- cc = country +- while (getline &2 "" + echo >&2 "The following information has been given:" + echo >&2 "" +- case $country%$region%$coord in +- ?*%?*%) say >&2 " $country$newline $region";; +- ?*%%) say >&2 " $country";; +- %?*%?*) say >&2 " coord $coord$newline $region";; +- %%?*) say >&2 " coord $coord";; ++ case $region%$coord in ++ ?*%) say >&2 " $region";; ++ ?*%?*) say >&2 " coord $coord$newline $region";; ++ %?*) say >&2 " coord $coord";; + *) say >&2 " TZ='$TZ'" + esac + say >&2 "" +-- +2.19.1 +