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 22|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
33?? ??? ????, PHP 8.4.5
44
5+ - BCMath:
6+ . Fixed bug GH-17398 (bcmul memory leak). (SakiTakamachi)
7+
58- DOM:
69 . Fixed bug GH-17609 (Typo in error message: Dom\NO_DEFAULT_NS instead of
710 Dom\HTML_NO_DEFAULT_NS). (nielsdos)
@@ -63,7 +66,7 @@ PHP NEWS
6366
6467- Intl:
6568 . Fixed bug GH-11874 (intl causing segfault in docker images). (nielsdos)
66-
69+
6770- Opcache:
6871 . Fixed bug GH-15981 (Segfault with frameless jumps and minimal JIT).
6972 (nielsdos)
Original file line number Diff line number Diff line change @@ -109,9 +109,9 @@ static PHP_GINIT_FUNCTION(bcmath)
109109/* {{{ PHP_GSHUTDOWN_FUNCTION */
110110static PHP_GSHUTDOWN_FUNCTION (bcmath )
111111{
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_ );
115115 bcmath_globals -> arena = NULL ;
116116 bcmath_globals -> arena_offset = 0 ;
117117}
Original file line number Diff line number Diff line change @@ -83,6 +83,8 @@ typedef struct bc_struct {
8383
8484void bc_init_numbers (void );
8585
86+ void bc_force_free_number (bc_num * num );
87+
8688bc_num _bc_new_num_ex (size_t length , size_t scale , bool persistent );
8789
8890bc_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)
9797 BCG (_two_ )-> n_value [0 ] = 2 ;
9898}
9999
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+
100107
101108/* Initialize a number NUM by making it a copy of zero. */
102109void 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