Commit 73b3040
authored
If the error handler is used, a new bytes object is created to set as
the object attribute of UnicodeDecodeError, and that bytes object then
replaces the original data. A pointer to the decoded data will became invalid
after destroying that temporary bytes object. So we need other way to return
the first invalid escape from _PyUnicode_DecodeUnicodeEscapeInternal().
_PyBytes_DecodeEscape() does not have such issue, because it does not
use the error handlers registry, but it should be changed for compatibility
with _PyUnicode_DecodeUnicodeEscapeInternal().
(cherry picked from commit 9f69a58)
(cherry picked from commit 6279eb8)
(cherry picked from commit a75953b)
Co-authored-by: Serhiy Storchaka <[email protected]>
1 parent 461ca2c commit 73b3040
File tree
8 files changed
+197
-57
lines changed- Include/cpython
- Lib/test
- Misc/NEWS.d/next/Security
- Objects
- Parser
8 files changed
+197
-57
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
28 | 32 | | |
29 | 33 | | |
30 | 34 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
914 | 914 | | |
915 | 915 | | |
916 | 916 | | |
| 917 | + | |
| 918 | + | |
| 919 | + | |
| 920 | + | |
| 921 | + | |
| 922 | + | |
| 923 | + | |
| 924 | + | |
| 925 | + | |
| 926 | + | |
| 927 | + | |
| 928 | + | |
| 929 | + | |
917 | 930 | | |
918 | 931 | | |
919 | 932 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1124 | 1124 | | |
1125 | 1125 | | |
1126 | 1126 | | |
1127 | | - | |
| 1127 | + | |
1128 | 1128 | | |
1129 | 1129 | | |
1130 | 1130 | | |
| |||
1159 | 1159 | | |
1160 | 1160 | | |
1161 | 1161 | | |
| 1162 | + | |
| 1163 | + | |
| 1164 | + | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
| 1185 | + | |
| 1186 | + | |
| 1187 | + | |
| 1188 | + | |
| 1189 | + | |
| 1190 | + | |
| 1191 | + | |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
| 1195 | + | |
| 1196 | + | |
| 1197 | + | |
1162 | 1198 | | |
1163 | 1199 | | |
1164 | 1200 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1198 | 1198 | | |
1199 | 1199 | | |
1200 | 1200 | | |
| 1201 | + | |
| 1202 | + | |
| 1203 | + | |
| 1204 | + | |
1201 | 1205 | | |
1202 | 1206 | | |
1203 | 1207 | | |
1204 | | - | |
| 1208 | + | |
| 1209 | + | |
1205 | 1210 | | |
1206 | | - | |
| 1211 | + | |
| 1212 | + | |
1207 | 1213 | | |
1208 | | - | |
| 1214 | + | |
| 1215 | + | |
1209 | 1216 | | |
1210 | 1217 | | |
1211 | 1218 | | |
1212 | | - | |
| 1219 | + | |
| 1220 | + | |
1213 | 1221 | | |
1214 | 1222 | | |
1215 | | - | |
| 1223 | + | |
| 1224 | + | |
1216 | 1225 | | |
1217 | 1226 | | |
| 1227 | + | |
| 1228 | + | |
| 1229 | + | |
| 1230 | + | |
| 1231 | + | |
| 1232 | + | |
| 1233 | + | |
1218 | 1234 | | |
1219 | 1235 | | |
1220 | 1236 | | |
| |||
2487 | 2503 | | |
2488 | 2504 | | |
2489 | 2505 | | |
| 2506 | + | |
| 2507 | + | |
| 2508 | + | |
| 2509 | + | |
2490 | 2510 | | |
2491 | 2511 | | |
2492 | 2512 | | |
2493 | | - | |
| 2513 | + | |
| 2514 | + | |
2494 | 2515 | | |
2495 | 2516 | | |
2496 | | - | |
| 2517 | + | |
| 2518 | + | |
2497 | 2519 | | |
2498 | | - | |
| 2520 | + | |
| 2521 | + | |
2499 | 2522 | | |
2500 | 2523 | | |
2501 | 2524 | | |
2502 | | - | |
| 2525 | + | |
| 2526 | + | |
2503 | 2527 | | |
2504 | 2528 | | |
2505 | | - | |
| 2529 | + | |
| 2530 | + | |
2506 | 2531 | | |
2507 | 2532 | | |
| 2533 | + | |
| 2534 | + | |
| 2535 | + | |
| 2536 | + | |
| 2537 | + | |
| 2538 | + | |
| 2539 | + | |
2508 | 2540 | | |
2509 | 2541 | | |
2510 | 2542 | | |
| |||
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1057 | 1057 | | |
1058 | 1058 | | |
1059 | 1059 | | |
1060 | | - | |
| 1060 | + | |
1061 | 1061 | | |
1062 | 1062 | | |
1063 | | - | |
| 1063 | + | |
| 1064 | + | |
1064 | 1065 | | |
1065 | 1066 | | |
1066 | 1067 | | |
| |||
1074 | 1075 | | |
1075 | 1076 | | |
1076 | 1077 | | |
1077 | | - | |
| 1078 | + | |
| 1079 | + | |
1078 | 1080 | | |
1079 | 1081 | | |
1080 | 1082 | | |
| |||
1112 | 1114 | | |
1113 | 1115 | | |
1114 | 1116 | | |
1115 | | - | |
1116 | | - | |
1117 | | - | |
| 1117 | + | |
| 1118 | + | |
| 1119 | + | |
| 1120 | + | |
1118 | 1121 | | |
1119 | 1122 | | |
1120 | 1123 | | |
| |||
1155 | 1158 | | |
1156 | 1159 | | |
1157 | 1160 | | |
1158 | | - | |
1159 | | - | |
1160 | | - | |
| 1161 | + | |
| 1162 | + | |
| 1163 | + | |
| 1164 | + | |
1161 | 1165 | | |
1162 | 1166 | | |
1163 | 1167 | | |
| |||
1171 | 1175 | | |
1172 | 1176 | | |
1173 | 1177 | | |
| 1178 | + | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
| 1185 | + | |
| 1186 | + | |
| 1187 | + | |
| 1188 | + | |
| 1189 | + | |
| 1190 | + | |
1174 | 1191 | | |
1175 | 1192 | | |
1176 | 1193 | | |
1177 | 1194 | | |
1178 | 1195 | | |
1179 | 1196 | | |
1180 | | - | |
1181 | | - | |
1182 | | - | |
| 1197 | + | |
| 1198 | + | |
| 1199 | + | |
| 1200 | + | |
| 1201 | + | |
1183 | 1202 | | |
1184 | 1203 | | |
1185 | | - | |
1186 | | - | |
1187 | | - | |
| 1204 | + | |
| 1205 | + | |
| 1206 | + | |
| 1207 | + | |
1188 | 1208 | | |
1189 | | - | |
1190 | | - | |
| 1209 | + | |
| 1210 | + | |
1191 | 1211 | | |
1192 | 1212 | | |
1193 | 1213 | | |
| |||
1196 | 1216 | | |
1197 | 1217 | | |
1198 | 1218 | | |
1199 | | - | |
| 1219 | + | |
1200 | 1220 | | |
1201 | 1221 | | |
1202 | 1222 | | |
| |||
0 commit comments