[3.12] gh-152674: Avoid quadratic behavior in xml.etree.ElementPath index predicates (GH-152676) (#154815)
Yhg1s <[email protected]> Tue, 04 Aug 2026 05:31:52 -0400 (EDT)
| Newsgroups | gmane.comp.python.cvs |
|---|---|
| Message-ID | <[email protected]> |
aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi9jcHl0aG9uL2NvbW1pdC85NjUxMGEzNzU4ZjRhMDc1 ZjQzMjIzYWZkZWUzYjZlZTFhN2E3ZjAyDQpjb21taXQ6IDk2NTEwYTM3NThmNGEwNzVmNDMyMjNh ZmRlZTNiNmVlMWE3YTdmMDINCmJyYW5jaDogMy4xMg0KYXV0aG9yOiBNaXNzIElzbGluZ3RvbiAo Ym90KSA8MzE0ODg5MDkrbWlzcy1pc2xpbmd0b25AdXNlcnMubm9yZXBseS5naXRodWIuY29tPg0K Y29tbWl0dGVyOiBZaGcxcyA8dGhvbWFzQHB5dGhvbi5vcmc+DQpkYXRlOiAyMDI2LTA4LTA0VDEx OjMwOjQ0KzAyOjAwDQpzdW1tYXJ5Og0KDQpbMy4xMl0gZ2gtMTUyNjc0OiBBdm9pZCBxdWFkcmF0 aWMgYmVoYXZpb3IgaW4geG1sLmV0cmVlLkVsZW1lbnRQYXRoIGluZGV4IHByZWRpY2F0ZXMgKEdI LTE1MjY3NikgKCMxNTQ4MTUpDQoNCmdoLTE1MjY3NDogQXZvaWQgcXVhZHJhdGljIGJlaGF2aW9y IGluIHhtbC5ldHJlZS5FbGVtZW50UGF0aCBpbmRleCBwcmVkaWNhdGVzIChHSC0xNTI2NzYpDQoN CihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDJmZmFiMDgzNzgyOTY4YTRkNzMyNzM4ZjRmMWRm ZjZiYmQ2OWQyYjApDQoNCkNvLWF1dGhvcmVkLWJ5OiBQZXRyIFZpa3RvcmluIDxlbmN1a291QGdt YWlsLmNvbT4NCkNvLWF1dGhvcmVkLWJ5OiBBbGV4aXMgPGFsZXhpcy5jaGFsbGFuZGVAdHJhaWxv ZmJpdHMuY29tPg0KQ28tYXV0aG9yZWQtYnk6IELDqW7DqWRpa3QgVHJhbiA8MTA3OTY2MDArcGlj bml4ekB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+DQoNCmZpbGVzOg0KQSBNaXNjL05FV1MuZC9u ZXh0L1NlY3VyaXR5LzIwMjYtMDYtMzAtMTMtMjQtMTMuZ2gtaXNzdWUtMTUyNjc0Li0yUVZvTC5y c3QNCk0gTGliL3Rlc3QvdGVzdF94bWxfZXRyZWUucHkNCk0gTGliL3htbC9ldHJlZS9FbGVtZW50 UGF0aC5weQ0KDQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF94bWxfZXRyZWUucHkgYi9MaWIv dGVzdC90ZXN0X3htbF9ldHJlZS5weQ0KaW5kZXggZjFiNDIwZWQ3OTQ0YTkzLi4wZjcwNmMyZWVj Zjc3NGEgMTAwNjQ0DQotLS0gYS9MaWIvdGVzdC90ZXN0X3htbF9ldHJlZS5weQ0KKysrIGIvTGli L3Rlc3QvdGVzdF94bWxfZXRyZWUucHkNCkBAIC0zMDg4LDYgKzMwODgsMzcgQEAgZGVmIHRlc3Rf ZmluZF94cGF0aChzZWxmKToNCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoU3ludGF4 RXJyb3IsICdYUGF0aCcsIGUuZmluZCwgJy4vdGFnW2xhc3QoKS0wXScpDQogICAgICAgICBzZWxm LmFzc2VydFJhaXNlc1JlZ2V4KFN5bnRheEVycm9yLCAnWFBhdGgnLCBlLmZpbmQsICcuL3RhZ1ts YXN0KCkrMV0nKQ0KIA0KKyAgICBkZWYgdGVzdF9maW5kX3hwYXRoX2luZGV4X25vX3F1YWRyYXRp Y19jb21wbGV4aXR5KHNlbGYpOg0KKyAgICAgICAgY2xhc3MgQ291bnRpbmdFbGVtZW50KEVULkVs ZW1lbnQpOg0KKyAgICAgICAgICAgIGZpbmRhbGxfY2FsbHMgPSAwDQorICAgICAgICAgICAgZGVm IGZpbmRhbGwoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToNCisgICAgICAgICAgICAgICAgdHlwZShz ZWxmKS5maW5kYWxsX2NhbGxzICs9IDENCisgICAgICAgICAgICAgICAgcmV0dXJuIHN1cGVyKCku ZmluZGFsbCgqYXJncywgKiprd2FyZ3MpDQorDQorICAgICAgICBkZWYgd29yayhuLCBwYXR0ZXJu KToNCisgICAgICAgICAgICByb290ID0gQ291bnRpbmdFbGVtZW50KCJyb290IikNCisgICAgICAg ICAgICBmb3IgXyBpbiByYW5nZShuKToNCisgICAgICAgICAgICAgICAgRVQuU3ViRWxlbWVudChy b290LCAiYSIpDQorICAgICAgICAgICAgQ291bnRpbmdFbGVtZW50LmZpbmRhbGxfY2FsbHMgPSAw DQorICAgICAgICAgICAgcm9vdC5maW5kYWxsKHBhdHRlcm4pDQorICAgICAgICAgICAgcmV0dXJu IENvdW50aW5nRWxlbWVudC5maW5kYWxsX2NhbGxzDQorDQorICAgICAgICBmb3IgcGF0dGVybiBp biBbIi4vL2FbMV0iLCAiLi8vYVtsYXN0KCldIl06DQorICAgICAgICAgICAgdzEgPSB3b3JrKDEw MjQsIHBhdHRlcm4pDQorICAgICAgICAgICAgdzIgPSB3b3JrKDIwNDgsIHBhdHRlcm4pDQorICAg ICAgICAgICAgdzMgPSB3b3JrKDQwOTYsIHBhdHRlcm4pDQorDQorICAgICAgICAgICAgc2VsZi5h c3NlcnRHcmVhdGVyKHcxLCAwKQ0KKyAgICAgICAgICAgIHIxID0gdzIgLyB3MQ0KKyAgICAgICAg ICAgIHIyID0gdzMgLyB3Mg0KKyAgICAgICAgICAgICMgRG91YmxpbmcgTiBtdXN0IG5vdCB+ZG91 YmxlIHRoZSBwYXJlbnQuZmluZGFsbCBjYWxscy4NCisgICAgICAgICAgICAjIExpbmVhci1pbi1O IGNhbGwgY291bnRzIGluZGljYXRlIHRoZSBjYWNoZSBpcyBtaXNzaW5nLg0KKyAgICAgICAgICAg IHNlbGYuYXNzZXJ0TGVzcygNCisgICAgICAgICAgICAgICAgbWF4KHIxLCByMiksIDEuNSwNCisg ICAgICAgICAgICAgICAgbXNnPWYiUG9zc2libGUgcXVhZHJhdGljIGJlaGF2aW9yIG9uIHtwYXR0 ZXJuIXJ9OiAiDQorICAgICAgICAgICAgICAgICAgICBmImNhbGxzPXt3MSwgdzIsIHczfSByYXRp b3M9e3IxLCByMn0iLA0KKyAgICAgICAgICAgICkNCisNCiAgICAgZGVmIHRlc3RfZmluZGFsbChz ZWxmKToNCiAgICAgICAgIGUgPSBFVC5YTUwoU0FNUExFX1hNTCkNCiAgICAgICAgIGVbMl0gPSBF VC5YTUwoU0FNUExFX1NFQ1RJT04pDQpkaWZmIC0tZ2l0IGEvTGliL3htbC9ldHJlZS9FbGVtZW50 UGF0aC5weSBiL0xpYi94bWwvZXRyZWUvRWxlbWVudFBhdGgucHkNCmluZGV4IGRjNmJkMjhjMDMx MzdkZS4uZGUxZmQyMDNmZjZhMGY2IDEwMDY0NA0KLS0tIGEvTGliL3htbC9ldHJlZS9FbGVtZW50 UGF0aC5weQ0KKysrIGIvTGliL3htbC9ldHJlZS9FbGVtZW50UGF0aC5weQ0KQEAgLTMyNCwxNSAr MzI0LDIyIEBAIGRlZiBzZWxlY3RfbmVnYXRlZChjb250ZXh0LCByZXN1bHQpOg0KICAgICAgICAg ICAgICAgICBpbmRleCA9IC0xDQogICAgICAgICBkZWYgc2VsZWN0KGNvbnRleHQsIHJlc3VsdCk6 DQogICAgICAgICAgICAgcGFyZW50X21hcCA9IGdldF9wYXJlbnRfbWFwKGNvbnRleHQpDQorICAg ICAgICAgICAgY2FjaGUgPSB7fQ0KICAgICAgICAgICAgIGZvciBlbGVtIGluIHJlc3VsdDoNCiAg ICAgICAgICAgICAgICAgdHJ5Og0KICAgICAgICAgICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50 X21hcFtlbGVtXQ0KKyAgICAgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6DQorICAgICAgICAg ICAgICAgICAgICBjb250aW51ZQ0KKyAgICAgICAgICAgICAgICBrZXkgPSAocGFyZW50LCBlbGVt LnRhZykNCisgICAgICAgICAgICAgICAgaWYga2V5IG5vdCBpbiBjYWNoZToNCiAgICAgICAgICAg ICAgICAgICAgICMgRklYTUU6IHdoYXQgaWYgdGhlIHNlbGVjdG9yIGlzICIqIiA/DQotICAgICAg ICAgICAgICAgICAgICBlbGVtcyA9IGxpc3QocGFyZW50LmZpbmRhbGwoZWxlbS50YWcpKQ0KLSAg ICAgICAgICAgICAgICAgICAgaWYgZWxlbXNbaW5kZXhdIGlzIGVsZW06DQotICAgICAgICAgICAg ICAgICAgICAgICAgeWllbGQgZWxlbQ0KLSAgICAgICAgICAgICAgICBleGNlcHQgKEluZGV4RXJy b3IsIEtleUVycm9yKToNCi0gICAgICAgICAgICAgICAgICAgIHBhc3MNCisgICAgICAgICAgICAg ICAgICAgIGVsZW1zID0gcGFyZW50LmZpbmRhbGwoZWxlbS50YWcpDQorICAgICAgICAgICAgICAg ICAgICB0cnk6DQorICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVba2V5XSA9IGVsZW1zW2lu ZGV4XQ0KKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEluZGV4RXJyb3I6DQorICAgICAgICAg ICAgICAgICAgICAgICAgY2FjaGVba2V5XSA9IE5vbmUNCisgICAgICAgICAgICAgICAgaWYgY2Fj aGVba2V5XSBpcyBlbGVtOg0KKyAgICAgICAgICAgICAgICAgICAgeWllbGQgZWxlbQ0KICAgICAg ICAgcmV0dXJuIHNlbGVjdA0KICAgICByYWlzZSBTeW50YXhFcnJvcigiaW52YWxpZCBwcmVkaWNh dGUiKQ0KIA0KZGlmZiAtLWdpdCBhL01pc2MvTkVXUy5kL25leHQvU2VjdXJpdHkvMjAyNi0wNi0z MC0xMy0yNC0xMy5naC1pc3N1ZS0xNTI2NzQuLTJRVm9MLnJzdCBiL01pc2MvTkVXUy5kL25leHQv U2VjdXJpdHkvMjAyNi0wNi0zMC0xMy0yNC0xMy5naC1pc3N1ZS0xNTI2NzQuLTJRVm9MLnJzdA0K bmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMDAwMC4uNjllNzMwMDhhZjc5 ZjE0DQotLS0gL2Rldi9udWxsDQorKysgYi9NaXNjL05FV1MuZC9uZXh0L1NlY3VyaXR5LzIwMjYt MDYtMzAtMTMtMjQtMTMuZ2gtaXNzdWUtMTUyNjc0Li0yUVZvTC5yc3QNCkBAIC0wLDAgKzEsNiBA QA0KK1RoZSA6Y2xhc3M6YHhtbC5ldHJlZS5FbGVtZW50VHJlZS5FbGVtZW50YCBtZXRob2RzDQor Om1ldGg6YH54bWwuZXRyZWUuRWxlbWVudFRyZWUuRWxlbWVudC5maW5kYWxsYCwNCis6bWV0aDpg fnhtbC5ldHJlZS5FbGVtZW50VHJlZS5FbGVtZW50Lml0ZXJmaW5kYCBhbmQNCis6bWV0aDpgfnht bC5ldHJlZS5FbGVtZW50VHJlZS5FbGVtZW50LmZpbmRgIGF2b2lkIHF1YWRyYXRpYyBiZWhhdmlv ciB3aGVuDQordXNpbmcgWFBhdGggaW5kZXggcHJlZGljYXRlcyAoYGBbMV1gYCwgYGBbbGFzdCgp XWBgLCBgYFtsYXN0KCktTl1gYCkgb24gWE1MDQorZG9jdW1lbnRzIHdpdGggbWFueSBzYW1lLXRh ZyBzaWJsaW5ncy4NCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KUHl0aG9uLWNoZWNraW5zIG1haWxpbmcgbGlzdCAtLSBweXRob24tY2hlY2tpbnNAcHl0 aG9uLm9yZwpUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIHB5dGhvbi1jaGVja2lucy1s ZWF2ZUBweXRob24ub3JnCmh0dHBzOi8vbWFpbC5weXRob24ub3JnL21haWxtYW4zLy9saXN0cy9w eXRob24tY2hlY2tpbnMucHl0aG9uLm9yZwpNZW1iZXIgYWRkcmVzczogcHl0aG9uLXB5dGhvbi1j aGVja2luc0BtLmdtYW5lLW14Lm9yZwo=