File tree 3 files changed +14
-6
lines changed 3 files changed +14
-6
lines changed Original file line number Diff line number Diff line change @@ -2,6 +2,10 @@ PHP NEWS
2
2
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3
3
?? ??? ????, PHP 8.4.0beta1
4
4
5
+ - PHPDBG:
6
+ . array out of bounds, stack overflow handled for segfault handler on windows.
7
+ (David Carlier)
8
+
5
9
6
10
01 Aug 2024, PHP 8.4.0alpha4
7
11
Original file line number Diff line number Diff line change @@ -1627,7 +1627,7 @@ int main(int argc, char **argv) /* {{{ */
1627
1627
1628
1628
#ifdef _WIN32
1629
1629
} __except(phpdbg_exception_handler_win32 (xp = GetExceptionInformation ())) {
1630
- phpdbg_error ("Access violation ( Segmentation fault) encountered\ntrying to abort cleanly..." );
1630
+ phpdbg_error ("Segmentation fault encountered\ntrying to abort cleanly..." );
1631
1631
}
1632
1632
#endif
1633
1633
phpdbg_out :
Original file line number Diff line number Diff line change @@ -28,11 +28,15 @@ int phpdbg_exception_handler_win32(EXCEPTION_POINTERS *xp) {
28
28
EXCEPTION_RECORD * xr = xp -> ExceptionRecord ;
29
29
CONTEXT * xc = xp -> ContextRecord ;
30
30
31
- if (xr -> ExceptionCode == EXCEPTION_ACCESS_VIOLATION ) {
32
-
33
- if (phpdbg_watchpoint_segfault_handler ((void * )xr -> ExceptionInformation [1 ]) == SUCCESS ) {
34
- return EXCEPTION_CONTINUE_EXECUTION ;
35
- }
31
+ switch (xr -> ExceptionCode ) {
32
+ case EXCEPTION_ACCESS_VIOLATION :
33
+ case EXCEPTION_ARRAY_BOUNDS_EXCEEDED :
34
+ case EXCEPTION_STACK_OVERFLOW :
35
+ if (phpdbg_watchpoint_segfault_handler ((void * )xr -> ExceptionInformation [1 ]) == SUCCESS ) {
36
+ return EXCEPTION_CONTINUE_EXECUTION ;
37
+ }
38
+ break ;
39
+ EMPTY_SWITCH_DEFAULT_CASE ()
36
40
}
37
41
38
42
return EXCEPTION_CONTINUE_SEARCH ;
You can’t perform that action at this time.
0 commit comments