Repository navigation
Commit 2c23505
authored
* 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 _testinternalcapi._Py_MAX_UNICODE.
* 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)
1 parent bcbe9bc commit 2c23505
4 files changed
Lines changed: 142 additions & 30 deletions
File tree
- Doc/c-api
- Lib/test/test_capi
- Modules
- Objects
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
425 | 425 | | |
426 | 426 | | |
427 | 427 | | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
428 | 432 | | |
429 | 433 | | |
430 | 434 | | |
| |||
1893 | 1897 | | |
1894 | 1898 | | |
1895 | 1899 | | |
1896 | | - | |
| 1900 | + | |
1897 | 1901 | | |
1898 | 1902 | | |
1899 | 1903 | | |
| 1904 | + | |
| 1905 | + | |
| 1906 | + | |
1900 | 1907 | | |
1901 | 1908 | | |
1902 | 1909 | | |
| |||
| 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 | | |
| |||
1858 | 1888 | | |
1859 | 1889 | | |
1860 | 1890 | | |
1861 | | - | |
1862 | | - | |
| 1891 | + | |
| 1892 | + | |
1863 | 1893 | | |
1864 | 1894 | | |
1865 | 1895 | | |
| |||
2024 | 2054 | | |
2025 | 2055 | | |
2026 | 2056 | | |
2027 | | - | |
2028 | | - | |
2029 | | - | |
2030 | 2057 | | |
2031 | 2058 | | |
2032 | 2059 | | |
2033 | 2060 | | |
2034 | 2061 | | |
2035 | | - | |
| 2062 | + | |
| 2063 | + | |
| 2064 | + | |
| 2065 | + | |
| 2066 | + | |
| 2067 | + | |
| 2068 | + | |
| 2069 | + | |
| 2070 | + | |
| 2071 | + | |
| 2072 | + | |
| 2073 | + | |
| 2074 | + | |
| 2075 | + | |
| 2076 | + | |
| 2077 | + | |
| 2078 | + | |
| 2079 | + | |
| 2080 | + | |
| 2081 | + | |
| 2082 | + | |
| 2083 | + | |
| 2084 | + | |
| 2085 | + | |
| 2086 | + | |
| 2087 | + | |
| 2088 | + | |
| 2089 | + | |
| 2090 | + | |
| 2091 | + | |
2036 | 2092 | | |
2037 | 2093 | | |
2038 | 2094 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3500 | 3500 | | |
3501 | 3501 | | |
3502 | 3502 | | |
| 3503 | + | |
| 3504 | + | |
| 3505 | + | |
| 3506 | + | |
3503 | 3507 | | |
3504 | 3508 | | |
3505 | 3509 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1583 | 1583 | | |
1584 | 1584 | | |
1585 | 1585 | | |
| 1586 | + | |
| 1587 | + | |
| 1588 | + | |
| 1589 | + | |
| 1590 | + | |
| 1591 | + | |
| 1592 | + | |
| 1593 | + | |
| 1594 | + | |
| 1595 | + | |
1586 | 1596 | | |
1587 | 1597 | | |
1588 | 1598 | | |
| |||
1618 | 1628 | | |
1619 | 1629 | | |
1620 | 1630 | | |
1621 | | - | |
1622 | | - | |
1623 | | - | |
| 1631 | + | |
1624 | 1632 | | |
1625 | 1633 | | |
1626 | 1634 | | |
| |||
1822 | 1830 | | |
1823 | 1831 | | |
1824 | 1832 | | |
1825 | | - | |
1826 | | - | |
1827 | | - | |
1828 | | - | |
1829 | 1833 | | |
1830 | 1834 | | |
1831 | 1835 | | |
1832 | 1836 | | |
1833 | | - | |
1834 | | - | |
| 1837 | + | |
| 1838 | + | |
| 1839 | + | |
1835 | 1840 | | |
| 1841 | + | |
1836 | 1842 | | |
1837 | 1843 | | |
1838 | 1844 | | |
| |||
2211 | 2217 | | |
2212 | 2218 | | |
2213 | 2219 | | |
2214 | | - | |
2215 | 2220 | | |
2216 | 2221 | | |
2217 | 2222 | | |
2218 | 2223 | | |
2219 | | - | |
| 2224 | + | |
| 2225 | + | |
| 2226 | + | |
2220 | 2227 | | |
| 2228 | + | |
| 2229 | + | |
| 2230 | + | |
| 2231 | + | |
| 2232 | + | |
| 2233 | + | |
| 2234 | + | |
| 2235 | + | |
| 2236 | + | |
| 2237 | + | |
| 2238 | + | |
| 2239 | + | |
| 2240 | + | |
| 2241 | + | |
| 2242 | + | |
| 2243 | + | |
| 2244 | + | |
| 2245 | + | |
| 2246 | + | |
| 2247 | + | |
| 2248 | + | |
2221 | 2249 | | |
2222 | | - | |
2223 | 2250 | | |
2224 | 2251 | | |
2225 | 2252 | | |
| |||
2253 | 2280 | | |
2254 | 2281 | | |
2255 | 2282 | | |
2256 | | - | |
| 2283 | + | |
| 2284 | + | |
| 2285 | + | |
| 2286 | + | |
| 2287 | + | |
| 2288 | + | |
| 2289 | + | |
| 2290 | + | |
| 2291 | + | |
| 2292 | + | |
| 2293 | + | |
| 2294 | + | |
| 2295 | + | |
| 2296 | + | |
| 2297 | + | |
| 2298 | + | |
| 2299 | + | |
| 2300 | + | |
| 2301 | + | |
2257 | 2302 | | |
2258 | | - | |
| 2303 | + | |
2259 | 2304 | | |
2260 | 2305 | | |
2261 | 2306 | | |
| |||
0 commit comments