Repository navigation
Commit 09a7956
authored
[3.15] gh-158445: Detect invalid UCS4 characters in debug mode (#158502) (#159524)
* gh-158445: Detect invalid UCS4 characters in debug mode (#158502)
In debug mode, PyUnicode_FromKindAndData(PyUnicode_4BYTE_KIND) and
PyUnicodeWriter_WriteUCS4() now raise a SystemError if a character is
not in range [U+0000; U+10ffff], instead of creating an invalid str
object.
In release mode, PyUnicode_FromKindAndData(PyUnicode_4BYTE_KIND)
raises a SystemError if the size is 1.
* In debug mode, unicode_char() no longer fails with an assertion
error if the character is invalid. Instead, raise SystemError.
* Add tests on invalid UCS-4 characters.
* Add unicode_invalid_character() helper function.
(cherry picked from commit a14a4a6)
* gh-158445: Skip invalid UCS-4 tests if Python is built with assertions (#158604)
If Python is built in release mode with assertions,
PyUnicode_FromKindAndData() and PyUnicodeWriter_Finish() fail with an
assertion error on invalid characters.
(cherry picked from commit 35bdbca)
(cherry picked from commit 2c23505)
1 parent 21aae35 commit 09a7956
3 files changed
Lines changed: 138 additions & 30 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
412 | 412 | | |
413 | 413 | | |
414 | 414 | | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
415 | 419 | | |
416 | 420 | | |
417 | 421 | | |
| |||
1880 | 1884 | | |
1881 | 1885 | | |
1882 | 1886 | | |
1883 | | - | |
| 1887 | + | |
1884 | 1888 | | |
1885 | 1889 | | |
1886 | 1890 | | |
| 1891 | + | |
| 1892 | + | |
| 1893 | + | |
1887 | 1894 | | |
1888 | 1895 | | |
1889 | 1896 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
20 | 25 | | |
21 | 26 | | |
22 | 27 | | |
| |||
39 | 44 | | |
40 | 45 | | |
41 | 46 | | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
42 | 53 | | |
43 | 54 | | |
44 | 55 | | |
| |||
71 | 82 | | |
72 | 83 | | |
73 | 84 | | |
74 | | - | |
| 85 | + | |
75 | 86 | | |
76 | 87 | | |
77 | 88 | | |
78 | 89 | | |
79 | 90 | | |
80 | 91 | | |
81 | | - | |
| 92 | + | |
82 | 93 | | |
83 | 94 | | |
84 | 95 | | |
| |||
113 | 124 | | |
114 | 125 | | |
115 | 126 | | |
116 | | - | |
| 127 | + | |
117 | 128 | | |
118 | 129 | | |
119 | 130 | | |
| |||
127 | 138 | | |
128 | 139 | | |
129 | 140 | | |
130 | | - | |
| 141 | + | |
131 | 142 | | |
132 | 143 | | |
133 | 144 | | |
| |||
299 | 310 | | |
300 | 311 | | |
301 | 312 | | |
302 | | - | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
303 | 333 | | |
304 | 334 | | |
305 | 335 | | |
| |||
444 | 474 | | |
445 | 475 | | |
446 | 476 | | |
447 | | - | |
| 477 | + | |
448 | 478 | | |
449 | 479 | | |
450 | 480 | | |
| |||
1013 | 1043 | | |
1014 | 1044 | | |
1015 | 1045 | | |
1016 | | - | |
| 1046 | + | |
1017 | 1047 | | |
1018 | 1048 | | |
1019 | 1049 | | |
| |||
1365 | 1395 | | |
1366 | 1396 | | |
1367 | 1397 | | |
1368 | | - | |
1369 | | - | |
| 1398 | + | |
| 1399 | + | |
1370 | 1400 | | |
1371 | 1401 | | |
1372 | 1402 | | |
| |||
1845 | 1875 | | |
1846 | 1876 | | |
1847 | 1877 | | |
1848 | | - | |
1849 | | - | |
| 1878 | + | |
| 1879 | + | |
1850 | 1880 | | |
1851 | 1881 | | |
1852 | 1882 | | |
| |||
2011 | 2041 | | |
2012 | 2042 | | |
2013 | 2043 | | |
2014 | | - | |
2015 | | - | |
2016 | | - | |
2017 | 2044 | | |
2018 | 2045 | | |
2019 | 2046 | | |
2020 | 2047 | | |
2021 | 2048 | | |
2022 | | - | |
| 2049 | + | |
| 2050 | + | |
| 2051 | + | |
| 2052 | + | |
| 2053 | + | |
| 2054 | + | |
| 2055 | + | |
| 2056 | + | |
| 2057 | + | |
| 2058 | + | |
| 2059 | + | |
| 2060 | + | |
| 2061 | + | |
| 2062 | + | |
| 2063 | + | |
| 2064 | + | |
| 2065 | + | |
| 2066 | + | |
| 2067 | + | |
| 2068 | + | |
| 2069 | + | |
| 2070 | + | |
| 2071 | + | |
| 2072 | + | |
| 2073 | + | |
| 2074 | + | |
| 2075 | + | |
| 2076 | + | |
| 2077 | + | |
| 2078 | + | |
2023 | 2079 | | |
2024 | 2080 | | |
2025 | 2081 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1681 | 1681 | | |
1682 | 1682 | | |
1683 | 1683 | | |
| 1684 | + | |
| 1685 | + | |
| 1686 | + | |
| 1687 | + | |
| 1688 | + | |
| 1689 | + | |
| 1690 | + | |
| 1691 | + | |
| 1692 | + | |
| 1693 | + | |
1684 | 1694 | | |
1685 | 1695 | | |
1686 | 1696 | | |
| |||
1716 | 1726 | | |
1717 | 1727 | | |
1718 | 1728 | | |
1719 | | - | |
1720 | | - | |
1721 | | - | |
| 1729 | + | |
1722 | 1730 | | |
1723 | 1731 | | |
1724 | 1732 | | |
| |||
1972 | 1980 | | |
1973 | 1981 | | |
1974 | 1982 | | |
1975 | | - | |
1976 | | - | |
1977 | | - | |
1978 | | - | |
1979 | 1983 | | |
1980 | 1984 | | |
1981 | 1985 | | |
1982 | 1986 | | |
1983 | | - | |
1984 | | - | |
| 1987 | + | |
| 1988 | + | |
| 1989 | + | |
1985 | 1990 | | |
| 1991 | + | |
1986 | 1992 | | |
1987 | 1993 | | |
1988 | 1994 | | |
| |||
2361 | 2367 | | |
2362 | 2368 | | |
2363 | 2369 | | |
2364 | | - | |
2365 | 2370 | | |
2366 | 2371 | | |
2367 | 2372 | | |
2368 | 2373 | | |
2369 | | - | |
| 2374 | + | |
| 2375 | + | |
| 2376 | + | |
2370 | 2377 | | |
| 2378 | + | |
| 2379 | + | |
| 2380 | + | |
| 2381 | + | |
| 2382 | + | |
| 2383 | + | |
| 2384 | + | |
| 2385 | + | |
| 2386 | + | |
| 2387 | + | |
| 2388 | + | |
| 2389 | + | |
| 2390 | + | |
| 2391 | + | |
| 2392 | + | |
| 2393 | + | |
| 2394 | + | |
| 2395 | + | |
| 2396 | + | |
| 2397 | + | |
| 2398 | + | |
2371 | 2399 | | |
2372 | | - | |
2373 | 2400 | | |
2374 | 2401 | | |
2375 | 2402 | | |
| |||
2403 | 2430 | | |
2404 | 2431 | | |
2405 | 2432 | | |
2406 | | - | |
| 2433 | + | |
| 2434 | + | |
| 2435 | + | |
| 2436 | + | |
| 2437 | + | |
| 2438 | + | |
| 2439 | + | |
| 2440 | + | |
| 2441 | + | |
| 2442 | + | |
| 2443 | + | |
| 2444 | + | |
| 2445 | + | |
| 2446 | + | |
| 2447 | + | |
| 2448 | + | |
| 2449 | + | |
| 2450 | + | |
| 2451 | + | |
2407 | 2452 | | |
2408 | | - | |
| 2453 | + | |
2409 | 2454 | | |
2410 | 2455 | | |
2411 | 2456 | | |
| |||
0 commit comments