-
Notifications
You must be signed in to change notification settings - Fork 8k
Commit 0458b3c
Fix GH-20101: SplHeap/SplPriorityQueue serialization exposes INDIRECTs
Exposing INDIRECTs to userland is not allowed and can lead to all sorts
of wrong behaviour. In this case it lead to UAF bugs.
Solve it by duplicating the properties table, which de-indirects the
elements and also decouples it for future modifications.
Closes GH-20102.1 parent d0615d7 commit 0458b3c
File tree
4 files changed
+63
-28
lines changed- ext/spl
- tests
4 files changed
+63
-28
lines changedOriginal file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2 | 2 |
| |
3 | 3 |
| |
4 | 4 |
| |
5 | + | ||
6 | + | ||
7 | + | ||
5 | 8 |
| |
6 | 9 |
| |
7 | 10 |
| |
|
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1167 | 1167 |
| |
1168 | 1168 |
| |
1169 | 1169 |
| |
1170 | - | ||
1170 | + | ||
1171 | 1171 |
| |
1172 | 1172 |
| |
1173 | 1173 |
| |
| |||
1185 | 1185 |
| |
1186 | 1186 |
| |
1187 | 1187 |
| |
1188 | - | ||
1189 | - | ||
1188 | + | ||
1190 | 1189 |
| |
1191 | 1190 |
| |
1192 | - | ||
1191 | + | ||
1193 | 1192 |
| |
1194 | 1193 |
| |
1195 | 1194 |
| |
1195 | + | ||
1196 | + | ||
1197 | + | ||
1198 | + | ||
1199 | + | ||
1196 | 1200 |
| |
1197 | 1201 |
| |
1198 | 1202 |
| |
| |||
1241 | 1245 |
| |
1242 | 1246 |
| |
1243 | 1247 |
| |
1244 | - | ||
1245 | - | ||
1246 | - | ||
1247 | - | ||
1248 | - | ||
1249 | - | ||
1250 | - | ||
1251 | - | ||
1252 | - | ||
1253 | - | ||
1254 | - | ||
1255 | - | ||
1256 | - | ||
1257 | - | ||
1258 | - | ||
1259 | - | ||
1260 | - | ||
1261 | - | ||
1262 | - | ||
1263 | - | ||
1264 | - | ||
1265 | - | ||
1248 | + | ||
1266 | 1249 |
| |
1267 | 1250 |
| |
1268 | 1251 |
| |
|
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
74 | 74 |
| |
75 | 75 |
| |
76 | 76 |
| |
77 | - | ||
77 | + | ||
78 | 78 |
| |
79 | - | ||
79 | + | ||
80 | 80 |
| |
81 | 81 |
| |
82 | 82 |
| |
|
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1 | + | ||
2 | + | ||
3 | + | ||
4 | + | ||
5 | + | ||
6 | + | ||
7 | + | ||
8 | + | ||
9 | + | ||
10 | + | ||
11 | + | ||
12 | + | ||
13 | + | ||
14 | + | ||
15 | + | ||
16 | + | ||
17 | + | ||
18 | + | ||
19 | + | ||
20 | + | ||
21 | + | ||
22 | + | ||
23 | + | ||
24 | + | ||
25 | + | ||
26 | + | ||
27 | + | ||
28 | + | ||
29 | + | ||
30 | + | ||
31 | + | ||
32 | + | ||
33 | + | ||
34 | + | ||
35 | + | ||
36 | + | ||
37 | + | ||
38 | + | ||
39 | + | ||
40 | + | ||
41 | + | ||
42 | + | ||
43 | + | ||
44 | + | ||
45 | + | ||
46 | + | ||
47 | + | ||
48 | + | ||
49 | + |
0 commit comments