glibc/iconvdata
Arjun Shankar 9a99c68214 iconv: Accept redundant shift sequences in IBM1364 [BZ #26224]
The IBM1364, IBM1371, IBM1388, IBM1390 and IBM1399 character sets
share converter logic (iconvdata/ibm1364.c) which would reject
redundant shift sequences when processing input in these character
sets.  This led to a hang in the iconv program (CVE-2020-27618).

This commit adjusts the converter to ignore redundant shift sequences
and adds test cases for iconv_prog hangs that would be triggered upon
their rejection.  This brings the implementation in line with other
converters that also ignore redundant shift sequences (e.g. IBM930
etc., fixed in commit 692de4b396).

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-11-04 12:19:38 +01:00
..
testdata
8bit-gap.c
8bit-generic.c
ARMSCII-8.irreversible
BIG5.irreversible
BIG5HKSCS.irreversible
BIG5HKSCS.precomposed
CP932.irreversible
CP1255.irreversible
CP1258.irreversible
Depend
EUC-JISX0213.precomposed
EUC-JP-MS.irreversible
EUC-JP.irreversible
EUC-KR.irreversible
EUC-TW.irreversible
IBM856.irreversible
IBM922.irreversible
IBM1132.irreversible
IBM1133.irreversible
IBM1160.irreversible
IBM1161.irreversible
IBM1163.irreversible
IBM1164.irreversible
ISIRI-3342.irreversible
JISX0213.TXT
MISSING
Makefile
SHIFT_JISX0213.irreversible
SHIFT_JISX0213.precomposed
SJIS.irreversible
TCVN5712-1.precomposed
TESTS
TESTS2
TSCII.irreversible
TSCII.precomposed
ansi_x3.110.c
armscii-8.c
asmo_449.c
big5.c
big5hkscs.c
brf.c
bug-iconv1.c
bug-iconv2.c
bug-iconv3.c
bug-iconv4.c
bug-iconv5.c
bug-iconv6.c
bug-iconv8.c
bug-iconv9.c
bug-iconv10.c
bug-iconv11.c
bug-iconv12.c
cns11643.c
cns11643.h
cns11643l1.c
cns11643l1.h
cns11643l2.h
cp737.c
cp737.h
cp770.c
cp771.c
cp772.c
cp773.c
cp774.c
cp775.c
cp775.h
cp932.c
cp1125.c
cp1250.c
cp1251.c
cp1252.c
cp1253.c
cp1254.c
cp1255.c
cp1256.c
cp1257.c
cp1258.c
cp10007.c
csn_369103.c
cwi.c
dec-mcs.c
ebcdic-at-de-a.c
ebcdic-at-de.c
ebcdic-ca-fr.c
ebcdic-dk-no-a.c
ebcdic-dk-no.c
ebcdic-es-a.c
ebcdic-es-s.c
ebcdic-es.c
ebcdic-fi-se-a.c
ebcdic-fi-se.c
ebcdic-fr.c
ebcdic-is-friss.c
ebcdic-it.c
ebcdic-pt.c
ebcdic-uk.c
ebcdic-us.c
ecma-cyrillic.c
euc-cn.c
euc-jisx0213.c
euc-jp-ms.c
euc-jp.c
euc-kr.c
euc-tw.c
extra-module.mk
gap.awk
gaptab.awk
gb2312.c
gb2312.h
gb18030.c
gbbig5.c
gbgbk.c
gbk.c
gconv-modules
gconv.map
gen-8bit-gap-1.sh
gen-8bit-gap.sh
gen-8bit.sh
georgian-academy.c
georgian-ps.c
gost_19768-74.c
greek-ccitt.c
greek7-old.c
greek7.c
hp-greek8.c
hp-roman8.c
hp-roman9.c
hp-thai8.c
hp-turkish8.c
ibm037.c
ibm038.c
ibm256.c
ibm273.c
ibm274.c
ibm275.c
ibm277.c
ibm278.c
ibm280.c
ibm281.c
ibm284.c
ibm285.c
ibm290.c
ibm297.c
ibm420.c
ibm423.c
ibm424.c
ibm437.c
ibm500.c
ibm803.c
ibm803.h
ibm850.c
ibm851.c
ibm852.c
ibm855.c
ibm856.c
ibm856.h
ibm857.c
ibm858.c
ibm860.c
ibm861.c
ibm862.c
ibm863.c
ibm864.c
ibm865.c
ibm866.c
ibm866nav.c
ibm868.c
ibm869.c
ibm870.c
ibm871.c
ibm874.c
ibm875.c
ibm880.c
ibm891.c
ibm901.c
ibm901.h
ibm902.c
ibm902.h
ibm903.c
ibm904.c
ibm905.c
ibm918.c
ibm921.c
ibm921.h
ibm922.c
ibm922.h
ibm930.c
ibm930.h
ibm932.c
ibm932.h
ibm933.c
ibm933.h
ibm935.c
ibm935.h
ibm937.c
ibm937.h
ibm939.c
ibm939.h
ibm943.c
ibm943.h
ibm1004.c
ibm1008.c
ibm1008.h
ibm1008_420.c
ibm1025.c
ibm1025.h
ibm1026.c
ibm1046.c
ibm1046.h
ibm1047.c
ibm1097.c
ibm1097.h
ibm1112.c
ibm1112.h
ibm1122.c
ibm1122.h
ibm1123.c
ibm1123.h
ibm1124.c
ibm1124.h
ibm1129.c
ibm1129.h
ibm1130.c
ibm1130.h
ibm1132.c
ibm1132.h
ibm1133.c
ibm1133.h
ibm1137.c
ibm1137.h
ibm1140.c
ibm1140.h
ibm1141.c
ibm1141.h
ibm1142.c
ibm1142.h
ibm1143.c
ibm1143.h
ibm1144.c
ibm1144.h
ibm1145.c
ibm1145.h
ibm1146.c
ibm1146.h
ibm1147.c
ibm1147.h
ibm1148.c
ibm1148.h
ibm1149.c
ibm1149.h
ibm1153.c
ibm1153.h
ibm1154.c
ibm1154.h
ibm1155.c
ibm1155.h
ibm1156.c
ibm1156.h
ibm1157.c
ibm1157.h
ibm1158.c
ibm1158.h
ibm1160.c
ibm1160.h
ibm1161.c
ibm1161.h
ibm1162.c
ibm1162.h
ibm1163.c
ibm1163.h
ibm1164.c
ibm1164.h
ibm1166.c
ibm1166.h
ibm1167.c
ibm1167.h
ibm1364.c
ibm1364.h
ibm1371.c
ibm1371.h
ibm1388.c
ibm1388.h
ibm1390.c
ibm1390.h
ibm1399.c
ibm1399.h
ibm4517.c
ibm4517.h
ibm4899.c
ibm4899.h
ibm4909.c
ibm4909.h
ibm4971.c
ibm4971.h
ibm5347.c
ibm5347.h
ibm9030.c
ibm9030.h
ibm9066.c
ibm9066.h
ibm9448.c
ibm9448.h
ibm12712.c
ibm12712.h
ibm16804.c
ibm16804.h
iec_p27-1.c
inis-8.c
inis-cyrillic.c
inis.c
isiri-3342.c
isiri-3342.h
iso-2022-cn-ext.c
iso-2022-cn.c
iso-2022-jp-3.c
iso-2022-jp.c
iso-2022-kr.c
iso-ir-165.c
iso-ir-165.h
iso-ir-197.c
iso-ir-209.c
iso646.c
iso8859-1.c
iso8859-2.c
iso8859-3.c
iso8859-4.c
iso8859-5.c
iso8859-6.c
iso8859-7.c
iso8859-8.c
iso8859-9.c
iso8859-9e.c
iso8859-10.c
iso8859-11.c
iso8859-13.c
iso8859-14.c
iso8859-15.c
iso8859-16.c
iso_2033.c
iso_5427-ext.c
iso_5427.c
iso_5428.c
iso_6937-2.c
iso_6937.c
iso_10367-box.c
iso_11548-1.c
jis0201.c
jis0201.h
jis0208.c
jis0208.h
jis0212.c
jis0212.h
jisx0213.c
jisx0213.h
johab.c
koi-8.c
koi8-r.c
koi8-ru.c
koi8-t.c
koi8-u.c
ksc5601.c
ksc5601.h
latin-greek-1.c
latin-greek.c
mac-centraleurope.c
mac-is.c
mac-sami.c
mac-uk.c
macintosh.c
mik.c
nats-dano.c
nats-sefi.c
pt154.c
rk1048.c
run-iconv-test.sh
sami-ws2.c
shift_jisx0213.c
sjis.c
t.61.c
tcvn5712-1.c
tis-620.c
tscii.c
tst-e2big.c
tst-iconv-big5-hkscs-to-2ucs4.c
tst-iconv4.c
tst-iconv6.c
tst-iconv7.c
tst-loading.c
tst-table-charmap.sh
tst-table-from.c
tst-table-to.c
tst-table.sh
tst-tables.sh
uhc.c
unicode.c
utf-7.c
utf-16.c
utf-32.c
viscii.c