Commit da12379
committed
Block Supports: Improve handling of block class name to avoid fatals.
Add defensive guards to block `className` attribute handling to avoid fatal
errors when operating on corrupted block content.
While rare in practice, because the logic operates on raw block attributes it
needs to be especially defensive about the values it works with. When a block's
`className` attribute is not a string, passing it to `preg_match()` or
`str_contains()` triggers a fatal error on PHP 8+.
In `wp_render_block_style_variation_class_name()`, bail early when `className`
is not a string. In `wp_render_layout_support_flag()`, fall back to an empty
string when `className` is not a string before the `str_contains()` check.
Adds test coverage for both cases.
Developed in: WordPress#12516.
Props aduth, mciampini, westonruter, isabel_brison, onemaggie, tyxla.
Fixes #65625.
git-svn-id: https://develop.svn.wordpress.org/trunk@62732 602fd350-edb4-49c9-b593-d223f7449a821 parent 4816134 commit da12379
4 files changed
Lines changed: 77 additions & 2 deletions
File tree
- src/wp-includes/block-supports
- tests/phpunit/tests/block-supports
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
223 | 223 | | |
224 | 224 | | |
225 | 225 | | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
226 | 231 | | |
227 | 232 | | |
228 | 233 | | |
229 | 234 | | |
230 | | - | |
| 235 | + | |
231 | 236 | | |
232 | 237 | | |
233 | 238 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1160 | 1160 | | |
1161 | 1161 | | |
1162 | 1162 | | |
1163 | | - | |
| 1163 | + | |
| 1164 | + | |
| 1165 | + | |
1164 | 1166 | | |
1165 | 1167 | | |
1166 | 1168 | | |
| |||
Lines changed: 43 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
320 | 320 | | |
321 | 321 | | |
322 | 322 | | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
323 | 366 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1053 | 1053 | | |
1054 | 1054 | | |
1055 | 1055 | | |
| 1056 | + | |
| 1057 | + | |
| 1058 | + | |
| 1059 | + | |
| 1060 | + | |
| 1061 | + | |
| 1062 | + | |
| 1063 | + | |
| 1064 | + | |
| 1065 | + | |
| 1066 | + | |
| 1067 | + | |
| 1068 | + | |
| 1069 | + | |
| 1070 | + | |
| 1071 | + | |
| 1072 | + | |
| 1073 | + | |
| 1074 | + | |
| 1075 | + | |
| 1076 | + | |
| 1077 | + | |
| 1078 | + | |
| 1079 | + | |
| 1080 | + | |
1056 | 1081 | | |
0 commit comments