Commit 3a939ff
committed
Fix use-after-free in the unicode-escape decoder with error handler
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().1 parent 0664c1a commit 3a939ff
File tree
7 files changed
+133
-71
lines changed- Include/internal
- Lib/test
- Objects
- Parser
7 files changed
+133
-71
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
24 | | - | |
| 23 | + | |
| 24 | + | |
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
141 | 141 | | |
142 | 142 | | |
143 | 143 | | |
144 | | - | |
| 144 | + | |
145 | 145 | | |
146 | 146 | | |
147 | 147 | | |
148 | 148 | | |
149 | | - | |
150 | | - | |
151 | | - | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
| |||
1125 | 1126 | | |
1126 | 1127 | | |
1127 | 1128 | | |
1128 | | - | |
| 1129 | + | |
1129 | 1130 | | |
1130 | 1131 | | |
1131 | 1132 | | |
| |||
1160 | 1161 | | |
1161 | 1162 | | |
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 | + | |
| 1199 | + | |
1163 | 1200 | | |
1164 | 1201 | | |
1165 | 1202 | | |
| |||
| 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 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1076 | 1076 | | |
1077 | 1077 | | |
1078 | 1078 | | |
1079 | | - | |
| 1079 | + | |
1080 | 1080 | | |
1081 | 1081 | | |
1082 | | - | |
| 1082 | + | |
1083 | 1083 | | |
1084 | 1084 | | |
1085 | 1085 | | |
| |||
1093 | 1093 | | |
1094 | 1094 | | |
1095 | 1095 | | |
1096 | | - | |
| 1096 | + | |
1097 | 1097 | | |
1098 | 1098 | | |
1099 | 1099 | | |
| |||
1131 | 1131 | | |
1132 | 1132 | | |
1133 | 1133 | | |
1134 | | - | |
1135 | | - | |
1136 | | - | |
| 1134 | + | |
| 1135 | + | |
1137 | 1136 | | |
1138 | 1137 | | |
1139 | 1138 | | |
| |||
1174 | 1173 | | |
1175 | 1174 | | |
1176 | 1175 | | |
1177 | | - | |
1178 | | - | |
1179 | | - | |
| 1176 | + | |
| 1177 | + | |
1180 | 1178 | | |
1181 | 1179 | | |
1182 | 1180 | | |
| |||
1196 | 1194 | | |
1197 | 1195 | | |
1198 | 1196 | | |
1199 | | - | |
1200 | | - | |
| 1197 | + | |
| 1198 | + | |
1201 | 1199 | | |
1202 | 1200 | | |
1203 | 1201 | | |
1204 | | - | |
1205 | | - | |
1206 | | - | |
| 1202 | + | |
| 1203 | + | |
1207 | 1204 | | |
1208 | | - | |
| 1205 | + | |
1209 | 1206 | | |
1210 | 1207 | | |
1211 | 1208 | | |
| |||
1217 | 1214 | | |
1218 | 1215 | | |
1219 | 1216 | | |
1220 | | - | |
| 1217 | + | |
1221 | 1218 | | |
1222 | 1219 | | |
1223 | 1220 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6599 | 6599 | | |
6600 | 6600 | | |
6601 | 6601 | | |
6602 | | - | |
| 6602 | + | |
6603 | 6603 | | |
6604 | 6604 | | |
6605 | 6605 | | |
6606 | | - | |
| 6606 | + | |
6607 | 6607 | | |
6608 | 6608 | | |
6609 | 6609 | | |
| |||
6613 | 6613 | | |
6614 | 6614 | | |
6615 | 6615 | | |
6616 | | - | |
| 6616 | + | |
6617 | 6617 | | |
6618 | 6618 | | |
6619 | 6619 | | |
| |||
6701 | 6701 | | |
6702 | 6702 | | |
6703 | 6703 | | |
6704 | | - | |
6705 | | - | |
6706 | | - | |
| 6704 | + | |
| 6705 | + | |
6707 | 6706 | | |
6708 | 6707 | | |
6709 | 6708 | | |
| |||
6798 | 6797 | | |
6799 | 6798 | | |
6800 | 6799 | | |
6801 | | - | |
6802 | | - | |
6803 | | - | |
| 6800 | + | |
| 6801 | + | |
6804 | 6802 | | |
6805 | 6803 | | |
6806 | 6804 | | |
| |||
6845 | 6843 | | |
6846 | 6844 | | |
6847 | 6845 | | |
6848 | | - | |
6849 | | - | |
| 6846 | + | |
| 6847 | + | |
6850 | 6848 | | |
6851 | 6849 | | |
6852 | 6850 | | |
6853 | 6851 | | |
6854 | | - | |
6855 | | - | |
6856 | | - | |
| 6852 | + | |
| 6853 | + | |
6857 | 6854 | | |
6858 | | - | |
| 6855 | + | |
6859 | 6856 | | |
6860 | 6857 | | |
6861 | 6858 | | |
| |||
6867 | 6864 | | |
6868 | 6865 | | |
6869 | 6866 | | |
6870 | | - | |
| 6867 | + | |
6871 | 6868 | | |
6872 | 6869 | | |
6873 | 6870 | | |
| |||
0 commit comments