Commit cb57ba8
gh-155247: Use raw string content for the extensions cache key
The key of the extensions cache was built with _PyUnicode_AsUTF8NoNUL(),
so importing an extension module failed with UnicodeEncodeError if its
path contained characters unencodable in UTF-8, e.g. surrogate escapes of
an undecodable file name. The raw content of the strings is now used.
The rejection of embedded null characters, which was a side effect of the
UTF-8 encoding, is now explicit in the extension module loader.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>1 parent 1d90627 commit cb57ba8
4 files changed
Lines changed: 84 additions & 31 deletions
File tree
- Lib/test/test_import
- Misc/NEWS.d/next/Core_and_Builtins
- Python
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1262 | 1262 | | |
1263 | 1263 | | |
1264 | 1264 | | |
| 1265 | + | |
| 1266 | + | |
| 1267 | + | |
| 1268 | + | |
| 1269 | + | |
| 1270 | + | |
| 1271 | + | |
| 1272 | + | |
| 1273 | + | |
| 1274 | + | |
| 1275 | + | |
| 1276 | + | |
| 1277 | + | |
| 1278 | + | |
| 1279 | + | |
| 1280 | + | |
| 1281 | + | |
| 1282 | + | |
| 1283 | + | |
| 1284 | + | |
| 1285 | + | |
| 1286 | + | |
| 1287 | + | |
| 1288 | + | |
| 1289 | + | |
| 1290 | + | |
| 1291 | + | |
| 1292 | + | |
1265 | 1293 | | |
1266 | 1294 | | |
1267 | 1295 | | |
| |||
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1276 | 1276 | | |
1277 | 1277 | | |
1278 | 1278 | | |
| 1279 | + | |
| 1280 | + | |
| 1281 | + | |
| 1282 | + | |
| 1283 | + | |
| 1284 | + | |
| 1285 | + | |
| 1286 | + | |
| 1287 | + | |
| 1288 | + | |
| 1289 | + | |
| 1290 | + | |
1279 | 1291 | | |
1280 | | - | |
| 1292 | + | |
1281 | 1293 | | |
1282 | | - | |
1283 | | - | |
1284 | | - | |
1285 | | - | |
1286 | | - | |
1287 | | - | |
1288 | | - | |
| 1294 | + | |
| 1295 | + | |
| 1296 | + | |
| 1297 | + | |
| 1298 | + | |
| 1299 | + | |
1289 | 1300 | | |
1290 | | - | |
1291 | | - | |
1292 | | - | |
| 1301 | + | |
| 1302 | + | |
1293 | 1303 | | |
1294 | 1304 | | |
1295 | | - | |
| 1305 | + | |
1296 | 1306 | | |
1297 | 1307 | | |
1298 | 1308 | | |
1299 | 1309 | | |
1300 | 1310 | | |
1301 | | - | |
1302 | | - | |
1303 | | - | |
1304 | | - | |
1305 | | - | |
| 1311 | + | |
| 1312 | + | |
| 1313 | + | |
| 1314 | + | |
| 1315 | + | |
| 1316 | + | |
| 1317 | + | |
1306 | 1318 | | |
1307 | 1319 | | |
1308 | 1320 | | |
1309 | 1321 | | |
1310 | | - | |
| 1322 | + | |
1311 | 1323 | | |
1312 | | - | |
| 1324 | + | |
1313 | 1325 | | |
1314 | 1326 | | |
1315 | 1327 | | |
1316 | | - | |
| 1328 | + | |
1317 | 1329 | | |
1318 | | - | |
| 1330 | + | |
| 1331 | + | |
| 1332 | + | |
| 1333 | + | |
| 1334 | + | |
1319 | 1335 | | |
1320 | 1336 | | |
1321 | 1337 | | |
1322 | | - | |
| 1338 | + | |
1323 | 1339 | | |
1324 | 1340 | | |
1325 | 1341 | | |
| |||
1359 | 1375 | | |
1360 | 1376 | | |
1361 | 1377 | | |
1362 | | - | |
1363 | 1378 | | |
1364 | 1379 | | |
1365 | 1380 | | |
1366 | 1381 | | |
1367 | 1382 | | |
1368 | 1383 | | |
1369 | | - | |
1370 | | - | |
1371 | | - | |
| 1384 | + | |
| 1385 | + | |
| 1386 | + | |
1372 | 1387 | | |
1373 | 1388 | | |
1374 | 1389 | | |
| |||
1386 | 1401 | | |
1387 | 1402 | | |
1388 | 1403 | | |
1389 | | - | |
| 1404 | + | |
1390 | 1405 | | |
1391 | 1406 | | |
1392 | 1407 | | |
| |||
1396 | 1411 | | |
1397 | 1412 | | |
1398 | 1413 | | |
1399 | | - | |
| 1414 | + | |
1400 | 1415 | | |
1401 | 1416 | | |
1402 | 1417 | | |
| |||
1534 | 1549 | | |
1535 | 1550 | | |
1536 | 1551 | | |
1537 | | - | |
| 1552 | + | |
1538 | 1553 | | |
1539 | 1554 | | |
1540 | 1555 | | |
| |||
1578 | 1593 | | |
1579 | 1594 | | |
1580 | 1595 | | |
1581 | | - | |
1582 | 1596 | | |
1583 | 1597 | | |
1584 | 1598 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| |||
117 | 118 | | |
118 | 119 | | |
119 | 120 | | |
120 | | - | |
| 121 | + | |
121 | 122 | | |
122 | 123 | | |
123 | 124 | | |
| |||
130 | 131 | | |
131 | 132 | | |
132 | 133 | | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
133 | 140 | | |
134 | 141 | | |
135 | 142 | | |
| |||
0 commit comments