[3.13] gh-117807: Handle invalid UTF-8 in mimetypes map files (GH-151216) (GH-155185)

serhiy-storchaka <[email protected]> Tue, 04 Aug 2026 13:12:13 -0400 (EDT)
Newsgroups gmane.comp.python.cvs
Message-ID <[email protected]>
aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi9jcHl0aG9uL2NvbW1pdC9kMjBlMWNjYjY2MGRhYWNm
NDdkMWRjMjlmOGI1NjdlZTdlZDE4MWNlDQpjb21taXQ6IGQyMGUxY2NiNjYwZGFhY2Y0N2QxZGMy
OWY4YjU2N2VlN2VkMTgxY2UNCmJyYW5jaDogMy4xMw0KYXV0aG9yOiBNaXNzIElzbGluZ3RvbiAo
Ym90KSA8MzE0ODg5MDkrbWlzcy1pc2xpbmd0b25AdXNlcnMubm9yZXBseS5naXRodWIuY29tPg0K
Y29tbWl0dGVyOiBzZXJoaXktc3RvcmNoYWthIDxzdG9yY2hha2FAZ21haWwuY29tPg0KZGF0ZTog
MjAyNi0wOC0wNFQxNzoxMjowMVoNCnN1bW1hcnk6DQoNClszLjEzXSBnaC0xMTc4MDc6IEhhbmRs
ZSBpbnZhbGlkIFVURi04IGluIG1pbWV0eXBlcyBtYXAgZmlsZXMgKEdILTE1MTIxNikgKEdILTE1
NTE4NSkNCg0KKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMzBhYzIzZTNlNDEzYzJkMzhiODA2
OTFiMWM4MGUzY2Q3NGEyMjYzOSkNCg0KQ28tYXV0aG9yZWQtYnk6IEhhcmpvdGggS2hhcmEgPGhh
cmpvdGgua2hhcmFAZ21haWwuY29tPg0KDQpmaWxlczoNCkEgTWlzYy9ORVdTLmQvbmV4dC9MaWJy
YXJ5LzIwMjYtMDYtMTAtMDAtMDAtMDEuZ2gtaXNzdWUtMTE3ODA3LkN4MTE3OC5yc3QNCk0gTGli
L21pbWV0eXBlcy5weQ0KTSBMaWIvdGVzdC90ZXN0X21pbWV0eXBlcy5weQ0KDQpkaWZmIC0tZ2l0
IGEvTGliL21pbWV0eXBlcy5weSBiL0xpYi9taW1ldHlwZXMucHkNCmluZGV4IDJhZjdjNGI3Yjgw
ODIyLi4zZmE5Y2NmNTIxYjEyZCAxMDA2NDQNCi0tLSBhL0xpYi9taW1ldHlwZXMucHkNCisrKyBi
L0xpYi9taW1ldHlwZXMucHkNCkBAIC0yMjYsNyArMjI2LDcgQEAgZGVmIHJlYWQoc2VsZiwgZmls
ZW5hbWUsIHN0cmljdD1UcnVlKToNCiAgICAgICAgIGxpc3Qgb2Ygc3RhbmRhcmQgdHlwZXMsIGVs
c2UgdG8gdGhlIGxpc3Qgb2Ygbm9uLXN0YW5kYXJkDQogICAgICAgICB0eXBlcy4NCiAgICAgICAg
ICIiIg0KLSAgICAgICAgd2l0aCBvcGVuKGZpbGVuYW1lLCBlbmNvZGluZz0ndXRmLTgnKSBhcyBm
cDoNCisgICAgICAgIHdpdGggb3BlbihmaWxlbmFtZSwgZW5jb2Rpbmc9J3V0Zi04JywgZXJyb3Jz
PSdzdXJyb2dhdGVlc2NhcGUnKSBhcyBmcDoNCiAgICAgICAgICAgICBzZWxmLnJlYWRmcChmcCwg
c3RyaWN0KQ0KIA0KICAgICBkZWYgcmVhZGZwKHNlbGYsIGZwLCBzdHJpY3Q9VHJ1ZSk6DQpAQCAt
NDE0LDcgKzQxNCw3IEBAIGRlZiBpbml0KGZpbGVzPU5vbmUpOg0KIA0KIGRlZiByZWFkX21pbWVf
dHlwZXMoZmlsZSk6DQogICAgIHRyeToNCi0gICAgICAgIGYgPSBvcGVuKGZpbGUsIGVuY29kaW5n
PSd1dGYtOCcpDQorICAgICAgICBmID0gb3BlbihmaWxlLCBlbmNvZGluZz0ndXRmLTgnLCBlcnJv
cnM9J3N1cnJvZ2F0ZWVzY2FwZScpDQogICAgIGV4Y2VwdCBPU0Vycm9yOg0KICAgICAgICAgcmV0
dXJuIE5vbmUNCiAgICAgd2l0aCBmOg0KZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfbWltZXR5
cGVzLnB5IGIvTGliL3Rlc3QvdGVzdF9taW1ldHlwZXMucHkNCmluZGV4IDZiYmI1MmM5NTlhZjY5
Li41NDM0NWZlZDM1MzEzOCAxMDA2NDQNCi0tLSBhL0xpYi90ZXN0L3Rlc3RfbWltZXR5cGVzLnB5
DQorKysgYi9MaWIvdGVzdC90ZXN0X21pbWV0eXBlcy5weQ0KQEAgLTY1LDkgKzY1LDUwIEBAIGRl
ZiB0ZXN0X3JlYWRfbWltZV90eXBlcyhzZWxmKToNCiAgICAgICAgIHdpdGggdW5pdHRlc3QubW9j
ay5wYXRjaC5vYmplY3QobWltZXR5cGVzLCAnb3BlbicsDQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybl92YWx1ZT1mcCkgYXMgbW9ja19vcGVuOg0KICAgICAg
ICAgICAgIG1pbWVfZGljdCA9IG1pbWV0eXBlcy5yZWFkX21pbWVfdHlwZXMoZmlsZW5hbWUpDQot
ICAgICAgICAgICAgbW9ja19vcGVuLmFzc2VydF9jYWxsZWRfd2l0aChmaWxlbmFtZSwgZW5jb2Rp
bmc9J3V0Zi04JykNCisgICAgICAgICAgICBtb2NrX29wZW4uYXNzZXJ0X2NhbGxlZF93aXRoKGZp
bGVuYW1lLCBlbmNvZGluZz0ndXRmLTgnLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXJyb3JzPSdzdXJyb2dhdGVlc2NhcGUnKQ0KICAgICAgICAgZXEobWltZV9k
aWN0WyIuRnJhbsOnYWlzIl0sICJhcHBsaWNhdGlvbi9uby1tYW5zLWxhbmQiKQ0KIA0KKyAgICBk
ZWYgdGVzdF9yZWFkX21pbWVfdHlwZXNfaW52YWxpZF91dGY4X2NvbW1lbnQoc2VsZik6DQorICAg
ICAgICB3aXRoIG9zX2hlbHBlci50ZW1wX2RpcigpIGFzIGRpcmVjdG9yeToNCisgICAgICAgICAg
ICBkYXRhID0gKGIiIyBub24tVVRGLTggY29tbWVudDogXHg4M1xuIg0KKyAgICAgICAgICAgICAg
ICAgICAgYiJ4LWFwcGxpY2F0aW9uL3gtdW5pdHRlc3QgcHl1bml0XG4iKQ0KKyAgICAgICAgICAg
IGZpbGUgPSBvcy5wYXRoLmpvaW4oZGlyZWN0b3J5LCAic2FtcGxlLm1pbWV0eXBlIikNCisgICAg
ICAgICAgICB3aXRoIG9wZW4oZmlsZSwgIndiIikgYXMgZjoNCisgICAgICAgICAgICAgICAgZi53
cml0ZShkYXRhKQ0KKw0KKyAgICAgICAgICAgIG1pbWVfZGljdCA9IG1pbWV0eXBlcy5yZWFkX21p
bWVfdHlwZXMoZmlsZSkNCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKA0KKyAgICAgICAg
ICAgICAgICBtaW1lX2RpY3RbIi5weXVuaXQiXSwgIngtYXBwbGljYXRpb24veC11bml0dGVzdCIp
DQorDQorICAgICAgICAgICAgZGIgPSBtaW1ldHlwZXMuTWltZVR5cGVzKCkNCisgICAgICAgICAg
ICBkYi5yZWFkKGZpbGUpDQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgNCisgICAgICAg
ICAgICAgICAgZGIuZ3Vlc3NfZmlsZV90eXBlKCJzYW1wbGUucHl1bml0IilbMF0sDQorICAgICAg
ICAgICAgICAgICJ4LWFwcGxpY2F0aW9uL3gtdW5pdHRlc3QiKQ0KKw0KKyAgICAgICAgICAgIG1p
bWV0eXBlcy5pbml0KGZpbGVzPVtmaWxlXSkNCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KA0KKyAgICAgICAgICAgICAgICBtaW1ldHlwZXMuZ3Vlc3NfZmlsZV90eXBlKCJzYW1wbGUucHl1
bml0IilbMF0sDQorICAgICAgICAgICAgICAgICJ4LWFwcGxpY2F0aW9uL3gtdW5pdHRlc3QiKQ0K
Kw0KKyAgICBkZWYgdGVzdF9yZWFkX21pbWVfdHlwZXNfaW52YWxpZF91dGY4X3R5cGUoc2VsZik6
DQorICAgICAgICAjIEEgbm9uLVVURi04IGJ5dGUgaW4gYSB0eXBlIG9yIGV4dGVuc2lvbiAobm90
IG9ubHkgaW4gYSBjb21tZW50KSBpcw0KKyAgICAgICAgIyBwcmVzZXJ2ZWQgdmlhIHN1cnJvZ2F0
ZWVzY2FwZSwgc28gdGhlIG1hcHBpbmcgaXMgbm90IGNvcnJ1cHRlZC4NCisgICAgICAgIHdpdGgg
b3NfaGVscGVyLnRlbXBfZGlyKCkgYXMgZGlyZWN0b3J5Og0KKyAgICAgICAgICAgIGRhdGEgPSAo
YiJ4LWFwcGxpY2F0aW9uL3gtdW5pdHRlc3QgcHl1bml0XG4iDQorICAgICAgICAgICAgICAgICAg
ICBiImFwcGxpY2F0aW9uL2JhZFx4ODMgYmFkZXh0XHg4M1xuIikNCisgICAgICAgICAgICBmaWxl
ID0gb3MucGF0aC5qb2luKGRpcmVjdG9yeSwgInNhbXBsZS5taW1ldHlwZSIpDQorICAgICAgICAg
ICAgd2l0aCBvcGVuKGZpbGUsICJ3YiIpIGFzIGY6DQorICAgICAgICAgICAgICAgIGYud3JpdGUo
ZGF0YSkNCisNCisgICAgICAgICAgICBiYWRfdHlwZSA9IGIiYXBwbGljYXRpb24vYmFkXHg4MyIu
ZGVjb2RlKCJ1dGYtOCIsICJzdXJyb2dhdGVlc2NhcGUiKQ0KKyAgICAgICAgICAgIGJhZF9leHQg
PSBiIi5iYWRleHRceDgzIi5kZWNvZGUoInV0Zi04IiwgInN1cnJvZ2F0ZWVzY2FwZSIpDQorDQor
ICAgICAgICAgICAgbWltZV9kaWN0ID0gbWltZXR5cGVzLnJlYWRfbWltZV90eXBlcyhmaWxlKQ0K
KyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWltZV9kaWN0WyIucHl1bml0Il0sICJ4LWFw
cGxpY2F0aW9uL3gtdW5pdHRlc3QiKQ0KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWlt
ZV9kaWN0W2JhZF9leHRdLCBiYWRfdHlwZSkNCisNCiAgICAgZGVmIHRlc3RfaW5pdF9yZWluaXRp
YWxpemVzKHNlbGYpOg0KICAgICAgICAgIyBJc3N1ZSA0OTM2OiBtYWtlIHN1cmUgYW4gaW5pdCBz
dGFydHMgY2xlYW4NCiAgICAgICAgICMgRmlyc3QsIHB1dCBzb21lIHBvaXNvbiBpbnRvIHRoZSB0
eXBlcyB0YWJsZQ0KZGlmZiAtLWdpdCBhL01pc2MvTkVXUy5kL25leHQvTGlicmFyeS8yMDI2LTA2
LTEwLTAwLTAwLTAxLmdoLWlzc3VlLTExNzgwNy5DeDExNzgucnN0IGIvTWlzYy9ORVdTLmQvbmV4
dC9MaWJyYXJ5LzIwMjYtMDYtMTAtMDAtMDAtMDEuZ2gtaXNzdWUtMTE3ODA3LkN4MTE3OC5yc3QN
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMDAwMC4uZDZhODc0YTg0ODY3
YTINCi0tLSAvZGV2L251bGwNCisrKyBiL01pc2MvTkVXUy5kL25leHQvTGlicmFyeS8yMDI2LTA2
LTEwLTAwLTAwLTAxLmdoLWlzc3VlLTExNzgwNy5DeDExNzgucnN0DQpAQCAtMCwwICsxLDIgQEAN
CitGaXggOm1vZDpgbWltZXR5cGVzYCBpbml0aWFsaXphdGlvbiBmcm9tIE1JTUUgbWFwIGZpbGVz
IGNvbnRhaW5pbmcgaW52YWxpZA0KK1VURi04IGJ5dGVzLg0KDQpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpQeXRob24tY2hlY2tpbnMgbWFpbGluZyBsaXN0
IC0tIHB5dGhvbi1jaGVja2luc0BweXRob24ub3JnClRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1h
aWwgdG8gcHl0aG9uLWNoZWNraW5zLWxlYXZlQHB5dGhvbi5vcmcKaHR0cHM6Ly9tYWlsLnB5dGhv
bi5vcmcvbWFpbG1hbjMvL2xpc3RzL3B5dGhvbi1jaGVja2lucy5weXRob24ub3JnCk1lbWJlciBh
ZGRyZXNzOiBweXRob24tcHl0aG9uLWNoZWNraW5zQG0uZ21hbmUtbXgub3JnCg==