Commit 9ba1b85
More stack overflow avoidance in regex NonBacktracking (dotnet#60786)
* Add stackoverflow avoidance to SymbolicRegexNode
Remove unused Restrict methods instead of adding avoidance.
Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Add more stack overflow avoidance in regex
This follows a full audit of the NonBacktracking code.
* Apply suggestions from code review
Co-authored-by: Stephen Toub <stoub@microsoft.com>1 parent 3e94696 commit 9ba1b85
7 files changed
Lines changed: 139 additions & 78 deletions
File tree
- src/libraries/System.Text.RegularExpressions/src/System
- Text/RegularExpressions/Symbolic
- Algebras
- Threading
Lines changed: 20 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
| 8 | + | |
7 | 9 | | |
8 | 10 | | |
9 | 11 | | |
| |||
114 | 116 | | |
115 | 117 | | |
116 | 118 | | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
117 | 125 | | |
118 | 126 | | |
119 | 127 | | |
| |||
187 | 195 | | |
188 | 196 | | |
189 | 197 | | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
190 | 204 | | |
191 | 205 | | |
192 | 206 | | |
| |||
204 | 218 | | |
205 | 219 | | |
206 | 220 | | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
207 | 227 | | |
208 | 228 | | |
209 | 229 | | |
| |||
Lines changed: 5 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
34 | 39 | | |
35 | 40 | | |
36 | 41 | | |
| |||
Lines changed: 7 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
| 7 | + | |
6 | 8 | | |
7 | 9 | | |
8 | 10 | | |
| |||
295 | 297 | | |
296 | 298 | | |
297 | 299 | | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
298 | 305 | | |
299 | 306 | | |
300 | 307 | | |
| |||
Lines changed: 42 additions & 65 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
130 | 130 | | |
131 | 131 | | |
132 | 132 | | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
133 | 139 | | |
134 | 140 | | |
135 | 141 | | |
| |||
162 | 168 | | |
163 | 169 | | |
164 | 170 | | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
165 | 176 | | |
166 | 177 | | |
167 | 178 | | |
| |||
549 | 560 | | |
550 | 561 | | |
551 | 562 | | |
552 | | - | |
553 | | - | |
554 | | - | |
555 | | - | |
556 | | - | |
557 | | - | |
558 | | - | |
559 | | - | |
560 | | - | |
561 | | - | |
562 | | - | |
563 | | - | |
564 | | - | |
565 | | - | |
566 | | - | |
567 | | - | |
568 | | - | |
569 | | - | |
570 | | - | |
571 | | - | |
572 | | - | |
573 | | - | |
574 | | - | |
575 | | - | |
576 | | - | |
577 | | - | |
578 | | - | |
579 | | - | |
580 | | - | |
581 | | - | |
582 | | - | |
583 | | - | |
584 | | - | |
585 | | - | |
586 | | - | |
587 | | - | |
588 | | - | |
589 | | - | |
590 | | - | |
591 | | - | |
592 | | - | |
593 | | - | |
594 | | - | |
595 | | - | |
596 | | - | |
597 | | - | |
598 | | - | |
599 | | - | |
600 | | - | |
601 | | - | |
602 | | - | |
603 | | - | |
604 | | - | |
605 | | - | |
606 | | - | |
607 | | - | |
608 | | - | |
609 | | - | |
610 | | - | |
611 | | - | |
612 | | - | |
613 | | - | |
614 | | - | |
615 | | - | |
616 | | - | |
617 | 563 | | |
618 | 564 | | |
619 | 565 | | |
| |||
680 | 626 | | |
681 | 627 | | |
682 | 628 | | |
| 629 | + | |
683 | 630 | | |
684 | 631 | | |
685 | 632 | | |
| |||
858 | 805 | | |
859 | 806 | | |
860 | 807 | | |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
861 | 813 | | |
862 | 814 | | |
863 | 815 | | |
| |||
959 | 911 | | |
960 | 912 | | |
961 | 913 | | |
| 914 | + | |
| 915 | + | |
| 916 | + | |
| 917 | + | |
| 918 | + | |
962 | 919 | | |
963 | 920 | | |
964 | 921 | | |
| |||
1068 | 1025 | | |
1069 | 1026 | | |
1070 | 1027 | | |
| 1028 | + | |
| 1029 | + | |
| 1030 | + | |
| 1031 | + | |
1071 | 1032 | | |
1072 | 1033 | | |
1073 | 1034 | | |
| |||
1254 | 1215 | | |
1255 | 1216 | | |
1256 | 1217 | | |
| 1218 | + | |
| 1219 | + | |
| 1220 | + | |
| 1221 | + | |
| 1222 | + | |
| 1223 | + | |
1257 | 1224 | | |
1258 | 1225 | | |
1259 | 1226 | | |
| |||
1345 | 1312 | | |
1346 | 1313 | | |
1347 | 1314 | | |
| 1315 | + | |
| 1316 | + | |
| 1317 | + | |
| 1318 | + | |
| 1319 | + | |
1348 | 1320 | | |
1349 | 1321 | | |
1350 | 1322 | | |
| |||
1419 | 1391 | | |
1420 | 1392 | | |
1421 | 1393 | | |
| 1394 | + | |
| 1395 | + | |
| 1396 | + | |
| 1397 | + | |
| 1398 | + | |
1422 | 1399 | | |
1423 | 1400 | | |
1424 | 1401 | | |
| |||
Lines changed: 7 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
273 | 273 | | |
274 | 274 | | |
275 | 275 | | |
276 | | - | |
277 | | - | |
278 | | - | |
279 | | - | |
280 | | - | |
281 | | - | |
282 | | - | |
283 | | - | |
284 | | - | |
285 | | - | |
286 | | - | |
287 | | - | |
288 | | - | |
289 | 276 | | |
290 | 277 | | |
291 | 278 | | |
| |||
349 | 336 | | |
350 | 337 | | |
351 | 338 | | |
| 339 | + | |
352 | 340 | | |
353 | 341 | | |
354 | 342 | | |
| |||
373 | 361 | | |
374 | 362 | | |
375 | 363 | | |
| 364 | + | |
376 | 365 | | |
377 | 366 | | |
378 | 367 | | |
| |||
415 | 404 | | |
416 | 405 | | |
417 | 406 | | |
| 407 | + | |
418 | 408 | | |
419 | 409 | | |
420 | 410 | | |
| |||
428 | 418 | | |
429 | 419 | | |
430 | 420 | | |
| 421 | + | |
431 | 422 | | |
432 | 423 | | |
433 | 424 | | |
| |||
451 | 442 | | |
452 | 443 | | |
453 | 444 | | |
| 445 | + | |
454 | 446 | | |
455 | 447 | | |
456 | 448 | | |
| |||
464 | 456 | | |
465 | 457 | | |
466 | 458 | | |
| 459 | + | |
467 | 460 | | |
468 | 461 | | |
469 | 462 | | |
| |||
483 | 476 | | |
484 | 477 | | |
485 | 478 | | |
| 479 | + | |
486 | 480 | | |
487 | 481 | | |
488 | 482 | | |
| |||
Lines changed: 22 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
| 8 | + | |
7 | 9 | | |
8 | 10 | | |
9 | 11 | | |
| |||
77 | 79 | | |
78 | 80 | | |
79 | 81 | | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
80 | 87 | | |
81 | 88 | | |
82 | 89 | | |
| |||
100 | 107 | | |
101 | 108 | | |
102 | 109 | | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
103 | 115 | | |
104 | 116 | | |
105 | 117 | | |
| |||
132 | 144 | | |
133 | 145 | | |
134 | 146 | | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
135 | 152 | | |
136 | 153 | | |
137 | 154 | | |
| |||
205 | 222 | | |
206 | 223 | | |
207 | 224 | | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
208 | 230 | | |
209 | 231 | | |
210 | 232 | | |
| |||
0 commit comments