File tree Expand file tree Collapse file tree 5 files changed +26
-4
lines changed Expand file tree Collapse file tree 5 files changed +26
-4
lines changed Original file line number Diff line number Diff line change 2
2
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3
3
?? ??? ????, PHP 8.4.5
4
4
5
+ - BCMath:
6
+ . Fixed bug GH-17398 (bcmul memory leak). (SakiTakamachi)
7
+
5
8
- DOM:
6
9
. Fixed bug GH-17609 (Typo in error message: Dom\NO_DEFAULT_NS instead of
7
10
Dom\HTML_NO_DEFAULT_NS). (nielsdos)
@@ -63,7 +66,7 @@ PHP NEWS
63
66
64
67
- Intl:
65
68
. Fixed bug GH-11874 (intl causing segfault in docker images). (nielsdos)
66
-
69
+
67
70
- Opcache:
68
71
. Fixed bug GH-15981 (Segfault with frameless jumps and minimal JIT).
69
72
(nielsdos)
Original file line number Diff line number Diff line change @@ -109,9 +109,9 @@ static PHP_GINIT_FUNCTION(bcmath)
109
109
/* {{{ PHP_GSHUTDOWN_FUNCTION */
110
110
static PHP_GSHUTDOWN_FUNCTION (bcmath )
111
111
{
112
- _bc_free_num_ex (& bcmath_globals -> _zero_ , 1 );
113
- _bc_free_num_ex (& bcmath_globals -> _one_ , 1 );
114
- _bc_free_num_ex (& bcmath_globals -> _two_ , 1 );
112
+ bc_force_free_number (& bcmath_globals -> _zero_ );
113
+ bc_force_free_number (& bcmath_globals -> _one_ );
114
+ bc_force_free_number (& bcmath_globals -> _two_ );
115
115
bcmath_globals -> arena = NULL ;
116
116
bcmath_globals -> arena_offset = 0 ;
117
117
}
Original file line number Diff line number Diff line change @@ -83,6 +83,8 @@ typedef struct bc_struct {
83
83
84
84
void bc_init_numbers (void );
85
85
86
+ void bc_force_free_number (bc_num * num );
87
+
86
88
bc_num _bc_new_num_ex (size_t length , size_t scale , bool persistent );
87
89
88
90
bc_num _bc_new_num_nonzeroed_ex (size_t length , size_t scale , bool persistent );
Original file line number Diff line number Diff line change @@ -97,6 +97,13 @@ void bc_init_numbers(void)
97
97
BCG (_two_ )-> n_value [0 ] = 2 ;
98
98
}
99
99
100
+ void bc_force_free_number (bc_num * num )
101
+ {
102
+ pefree ((* num )-> n_ptr , 1 );
103
+ pefree (* num , 1 );
104
+ * num = NULL ;
105
+ }
106
+
100
107
101
108
/* Initialize a number NUM by making it a copy of zero. */
102
109
void bc_init_num (bc_num * num )
Original file line number Diff line number Diff line change
1
+ --TEST--
2
+ GH-17398 (bcmul memory leak)
3
+ --EXTENSIONS--
4
+ bcmath
5
+ --FILE--
6
+ <?php
7
+ bcmul ('0 ' , '0 ' , 2147483647 );
8
+ ?>
9
+ --EXPECTF--
10
+ Fatal error: Allowed memory size of %d bytes exhausted%s(tried to allocate %d bytes) in %s on line %d
You can’t perform that action at this time.
0 commit comments