Commit 6279eb8
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)
Co-authored-by: Serhiy Storchaka <[email protected]>
1 parent 0c0fedf commit 6279eb8
File tree
8 files changed
+194
-57
lines changed- Include/internal
- Lib/test
- Misc/NEWS.d/next/Security
- Objects
- Parser
8 files changed
+194
-57
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
23 | 27 | | |
24 | 28 | | |
25 | 29 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
142 | 142 | | |
143 | 143 | | |
144 | 144 | | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
145 | 158 | | |
146 | 159 | | |
147 | 160 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
1124 | 1125 | | |
1125 | 1126 | | |
1126 | 1127 | | |
1127 | | - | |
| 1128 | + | |
1128 | 1129 | | |
1129 | 1130 | | |
1130 | 1131 | | |
| |||
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 | + | |
| 1198 | + | |
1162 | 1199 | | |
1163 | 1200 | | |
1164 | 1201 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1196 | 1196 | | |
1197 | 1197 | | |
1198 | 1198 | | |
| 1199 | + | |
| 1200 | + | |
| 1201 | + | |
| 1202 | + | |
1199 | 1203 | | |
1200 | 1204 | | |
1201 | 1205 | | |
1202 | | - | |
| 1206 | + | |
| 1207 | + | |
1203 | 1208 | | |
1204 | | - | |
| 1209 | + | |
| 1210 | + | |
1205 | 1211 | | |
1206 | | - | |
| 1212 | + | |
| 1213 | + | |
1207 | 1214 | | |
1208 | 1215 | | |
1209 | 1216 | | |
1210 | | - | |
| 1217 | + | |
| 1218 | + | |
1211 | 1219 | | |
1212 | 1220 | | |
1213 | | - | |
| 1221 | + | |
| 1222 | + | |
1214 | 1223 | | |
1215 | 1224 | | |
| 1225 | + | |
| 1226 | + | |
| 1227 | + | |
| 1228 | + | |
| 1229 | + | |
| 1230 | + | |
| 1231 | + | |
1216 | 1232 | | |
1217 | 1233 | | |
1218 | 1234 | | |
| |||
2661 | 2677 | | |
2662 | 2678 | | |
2663 | 2679 | | |
| 2680 | + | |
| 2681 | + | |
| 2682 | + | |
| 2683 | + | |
2664 | 2684 | | |
2665 | 2685 | | |
2666 | 2686 | | |
2667 | | - | |
| 2687 | + | |
| 2688 | + | |
2668 | 2689 | | |
2669 | 2690 | | |
2670 | | - | |
| 2691 | + | |
| 2692 | + | |
2671 | 2693 | | |
2672 | | - | |
| 2694 | + | |
| 2695 | + | |
2673 | 2696 | | |
2674 | 2697 | | |
2675 | 2698 | | |
2676 | | - | |
| 2699 | + | |
| 2700 | + | |
2677 | 2701 | | |
2678 | 2702 | | |
2679 | | - | |
| 2703 | + | |
| 2704 | + | |
2680 | 2705 | | |
2681 | 2706 | | |
| 2707 | + | |
| 2708 | + | |
| 2709 | + | |
| 2710 | + | |
| 2711 | + | |
| 2712 | + | |
| 2713 | + | |
2682 | 2714 | | |
2683 | 2715 | | |
2684 | 2716 | | |
| |||
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 | |
|---|---|---|---|
| |||
1065 | 1065 | | |
1066 | 1066 | | |
1067 | 1067 | | |
1068 | | - | |
| 1068 | + | |
1069 | 1069 | | |
1070 | 1070 | | |
1071 | | - | |
| 1071 | + | |
| 1072 | + | |
1072 | 1073 | | |
1073 | 1074 | | |
1074 | 1075 | | |
| |||
1082 | 1083 | | |
1083 | 1084 | | |
1084 | 1085 | | |
1085 | | - | |
| 1086 | + | |
| 1087 | + | |
1086 | 1088 | | |
1087 | 1089 | | |
1088 | 1090 | | |
| |||
1120 | 1122 | | |
1121 | 1123 | | |
1122 | 1124 | | |
1123 | | - | |
1124 | | - | |
1125 | | - | |
| 1125 | + | |
| 1126 | + | |
| 1127 | + | |
| 1128 | + | |
1126 | 1129 | | |
1127 | 1130 | | |
1128 | 1131 | | |
| |||
1163 | 1166 | | |
1164 | 1167 | | |
1165 | 1168 | | |
1166 | | - | |
1167 | | - | |
1168 | | - | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
1169 | 1173 | | |
1170 | 1174 | | |
1171 | 1175 | | |
| |||
1179 | 1183 | | |
1180 | 1184 | | |
1181 | 1185 | | |
| 1186 | + | |
| 1187 | + | |
| 1188 | + | |
| 1189 | + | |
| 1190 | + | |
| 1191 | + | |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
| 1195 | + | |
| 1196 | + | |
| 1197 | + | |
| 1198 | + | |
1182 | 1199 | | |
1183 | 1200 | | |
1184 | 1201 | | |
1185 | 1202 | | |
1186 | 1203 | | |
1187 | 1204 | | |
1188 | | - | |
1189 | | - | |
1190 | | - | |
| 1205 | + | |
| 1206 | + | |
| 1207 | + | |
| 1208 | + | |
| 1209 | + | |
1191 | 1210 | | |
1192 | 1211 | | |
1193 | | - | |
1194 | | - | |
1195 | | - | |
| 1212 | + | |
| 1213 | + | |
1196 | 1214 | | |
1197 | | - | |
1198 | | - | |
| 1215 | + | |
| 1216 | + | |
1199 | 1217 | | |
1200 | 1218 | | |
1201 | 1219 | | |
| |||
1204 | 1222 | | |
1205 | 1223 | | |
1206 | 1224 | | |
1207 | | - | |
| 1225 | + | |
1208 | 1226 | | |
1209 | 1227 | | |
1210 | 1228 | | |
| |||
0 commit comments