Author: Saki Takamachi (SakiTakamachi)
Date: 2026-04-10T00:26:45+09:00

Commit: 
https://github.com/php/web-php/commit/72d8ab85eacab078209836c588669c4f0234bdfe
Raw diff: 
https://github.com/php/web-php/commit/72d8ab85eacab078209836c588669c4f0234bdfe.diff

Announce PHP 8.4.20

Changed paths:
  A  archive/entries/2026-04-09-2.xml
  A  releases/8_4_20.php
  M  ChangeLog-8.php
  M  archive/archive.xml
  M  include/release-qa.php
  M  include/releases.inc
  M  include/version.inc


Diff:

diff --git a/ChangeLog-8.php b/ChangeLog-8.php
index cbc4bb6655..d72df2792e 100644
--- a/ChangeLog-8.php
+++ b/ChangeLog-8.php
@@ -877,6 +877,79 @@
 
 <a id="PHP_8_4"></a>
 
+<section class="version" id="8.4.20"><!-- {{{ 8.4.20 -->
+<h3>Version 8.4.20</h3>
+<b><?php release_date('09-Apr-2026'); ?></b>
+<ul><li>Bz2:
+<ul>
+  <li>Fix truncation of total output size causing erroneous errors.</li>
+</ul></li>
+<li>Core:
+<ul>
+  <li>Fixed bugs <?php githubissuel('php/php-src', 20875); ?>, <?php 
githubissuel('php/php-src', 20873); ?>, <?php githubissuel('php/php-src', 
20854); ?> (Propagate IN_GET guard in get_property_ptr_ptr for lazy 
proxies).</li>
+</ul></li>
+<li>DOM:
+<ul>
+  <li>Fixed bug <?php githubissuel('php/php-src', 21486); ?> (Dom\HTMLDocument 
parser mangles xml:space and xml:lang attributes).</li>
+</ul></li>
+<li>FFI:
+<ul>
+  <li>Fixed resource leak in FFI::cdef() onsymbol resolution failure.</li>
+</ul></li>
+<li>GD:
+<ul>
+  <li>Fixed bug <?php githubissuel('php/php-src', 21431); ?> (phpinfo() to 
display libJPEG 10.0 support).</li>
+</ul></li>
+<li>Opcache:
+<ul>
+  <li>Fixed bug <?php githubissuel('php/php-src', 20838); ?> (JIT compiler 
produces wrong arithmetic results).</li>
+  <li>Fixed bug <?php githubissuel('php/php-src', 21267); ?> (JIT tracing: 
infinite loop on FETCH_OBJ_R with IS_UNDEF property in polymorphic 
context).</li>
+  <li>Fixed bug <?php githubissuel('php/php-src', 21395); ?> (uaf in jit).</li>
+</ul></li>
+<li>OpenSSL:
+<ul>
+  <li>Fixed bug <?php githubissuel('php/php-src', 21083); ?> (Skip 
private_key_bits validation for EC/curve-based keys).</li>
+  <li>Fix missing error propagation for BIO_printf() calls.</li>
+</ul></li>
+<li>PCRE:
+<ul>
+  <li>Fixed re-entrancy issue on php_pcre_match_impl, php_pcre_replace_impl, 
php_pcre_split_impl, and php_pcre_grep_impl.</li>
+</ul></li>
+<li>PGSQL:
+<ul>
+  <li>Fixed preprocessor silently guarding PGSQL_SUPPRESS_TIMESTAMPS support 
due to a typo.</li>
+</ul></li>
+<li>SNMP:
+<ul>
+  <li>Fixed bug <?php githubissuel('php/php-src', 21336); ?> 
(SNMP::setSecurity() undefined behavior with NULL arguments).</li>
+</ul></li>
+<li>SOAP:
+<ul>
+  <li>Fixed Set-Cookie parsing bug wrong offset while scanning attributes.</li>
+</ul></li>
+<li>SPL:
+<ul>
+  <li>Fixed bug <?php githubissuel('php/php-src', 21454); ?> (missing write 
lock validation in SplHeap).</li>
+</ul></li>
+<li>Standard:
+<ul>
+  <li>Fixed bug <?php githubissuel('php/php-src', 20906); ?> (Assertion 
failure when messing up output buffers).</li>
+  <li>Fixed bug <?php githubissuel('php/php-src', 20627); ?> (Cannot identify 
some avif images with getimagesize).</li>
+</ul></li>
+<li>Sysvshm:
+<ul>
+  <li>Fix memory leak in shm_get_var() when variable is corrupted.</li>
+</ul></li>
+<li>XSL:
+<ul>
+  <li>Fix <?php githubissuel('php/php-src', 21357); ?> (XSLTProcessor works 
with DOMDocument, but fails with Dom\XMLDocument).</li>
+  <li>Fixed bug <?php githubissuel('php/php-src', 21496); ?> (UAF in 
dom_objects_free_storage).</li>
+</ul></li>
+</ul>
+<!-- }}} --></section>
+
+
+
 <section class="version" id="8.4.19"><!-- {{{ 8.4.19 -->
 <h3>Version 8.4.19</h3>
 <b><?php release_date('12-Mar-2026'); ?></b>
diff --git a/archive/archive.xml b/archive/archive.xml
index aa3e2beae4..703155ce0c 100644
--- a/archive/archive.xml
+++ b/archive/archive.xml
@@ -9,6 +9,7 @@
     <uri>http://php.net/contact</uri>
     <email>[email protected]</email>
   </author>
+  <xi:include href="entries/2026-04-09-2.xml"/>
   <xi:include href="entries/2026-04-09-1.xml"/>
   <xi:include href="entries/2026-03-12-2.xml"/>
   <xi:include href="entries/2026-03-12-1.xml"/>
diff --git a/archive/entries/2026-04-09-2.xml b/archive/entries/2026-04-09-2.xml
new file mode 100644
index 0000000000..832b834cf9
--- /dev/null
+++ b/archive/entries/2026-04-09-2.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<entry xmlns="http://www.w3.org/2005/Atom";>
+  <title>PHP 8.4.20 Released!</title>
+  <id>https://www.php.net/archive/2026.php#2026-04-09-2</id>
+  <published>2026-04-09T15:24:28+00:00</published>
+  <updated>2026-04-09T15:24:28+00:00</updated>
+  <link href="https://www.php.net/index.php#2026-04-09-2"; rel="alternate" 
type="text/html"/>
+  <link href="https://www.php.net/archive/2026.php#2026-04-09-2"; rel="via" 
type="text/html"/>
+  <category term="releases" label="New PHP release"/>
+  <category term="frontpage" label="PHP.net frontpage news"/>
+  <content type="xhtml">
+    <div xmlns="http://www.w3.org/1999/xhtml";><p>The PHP development team 
announces the immediate availability of PHP 8.4.20. This is a bug fix 
release.</p>
+
+<p>All PHP 8.4 users are encouraged to upgrade to this version.</p>
+
+<p>For source downloads of PHP 8.4.20 please visit our <a 
href="https://www.php.net/downloads.php";>downloads page</a>,
+Windows source and binaries can also be found <a 
href="https://www.php.net/downloads.php?os=windows&amp;version=8.4";>there</a>.
+The list of changes is recorded in the <a 
href="https://www.php.net/ChangeLog-8.php#8.4.20";>ChangeLog</a>.
+</p>    </div>
+  </content>
+</entry>
diff --git a/include/release-qa.php b/include/release-qa.php
index 79cc541b94..0b36900b0e 100644
--- a/include/release-qa.php
+++ b/include/release-qa.php
@@ -75,12 +75,12 @@
         'active'  => true,
         'release' => [
             'type'       => 'RC',
-            'number'     => 1,
-            'sha256_bz2' => 
'25f64085c22a48d6941acf38ec9e4c8f046d6f9f2285b7fdf49a9f3cd8217741',
-            'sha256_gz'  => 
'd12ac12d1745ba1d5b7a0bd9005adf1ab2fe2ca97132eea5b8a45163998554cd',
-            'sha256_xz'  => 
'a0108bc5432499cbdd9c64bcb2cb3715ff2cec23bb768c2fb6ed0c433e9ff933',
+            'number'     => 0,
+            'sha256_bz2' => '',
+            'sha256_gz'  => '',
+            'sha256_xz'  => '',
             'date'       => '26 Mar 2026',
-            'baseurl'    => 'https://downloads.php.net/~saki/',
+            'baseurl'    => 'https://downloads.php.net/',
         ],
     ],
 
diff --git a/include/releases.inc b/include/releases.inc
index 4e9e21ad66..686bb833b6 100644
--- a/include/releases.inc
+++ b/include/releases.inc
@@ -2,6 +2,42 @@
 $OLDRELEASES = array (
   8 => 
   array (
+    '8.4.19' => 
+    array (
+      'announcement' => 
+      array (
+        'English' => '/releases/8_4_19.php',
+      ),
+      'tags' => 
+      array (
+      ),
+      'date' => '12 Mar 2026',
+      'source' => 
+      array (
+        0 => 
+        array (
+          'filename' => 'php-8.4.19.tar.gz',
+          'name' => 'PHP 8.4.19 (tar.gz)',
+          'sha256' => 
'9e862435ffb533dc5b0eb486170a74e5f7c8095e8eb8819a2ff5aad430292a18',
+          'date' => '12 Mar 2026',
+        ),
+        1 => 
+        array (
+          'filename' => 'php-8.4.19.tar.bz2',
+          'name' => 'PHP 8.4.19 (tar.bz2)',
+          'sha256' => 
'bceb7798ed37b442fe523ae7ef345ccc2231db0b022d30735c2e378d3254a0d4',
+          'date' => '12 Mar 2026',
+        ),
+        2 => 
+        array (
+          'filename' => 'php-8.4.19.tar.xz',
+          'name' => 'PHP 8.4.19 (tar.xz)',
+          'sha256' => 
'11f7164ab26d356c31f94d3d69cc0e0707d5d2d6494a221aaeae307c08eaaa1c',
+          'date' => '12 Mar 2026',
+        ),
+      ),
+      'museum' => false,
+    ),
     '8.5.4' => 
     array (
       'announcement' => 
diff --git a/include/version.inc b/include/version.inc
index 917edf9d7d..3cb148d06d 100644
--- a/include/version.inc
+++ b/include/version.inc
@@ -34,13 +34,13 @@ $RELEASES = (function () {
 
     /* PHP 8.4 Release */
     $data['8.4'] = [
-        'version' => '8.4.19',
-        'date' => '12 Mar 2026',
+        'version' => '8.4.20',
+        'date' => '09 Apr 2026',
         'tags' => [], // Set to ['security'] for security releases.
         'sha256' => [
-            'tar.gz' => 
'9e862435ffb533dc5b0eb486170a74e5f7c8095e8eb8819a2ff5aad430292a18',
-            'tar.bz2' => 
'bceb7798ed37b442fe523ae7ef345ccc2231db0b022d30735c2e378d3254a0d4',
-            'tar.xz' => 
'11f7164ab26d356c31f94d3d69cc0e0707d5d2d6494a221aaeae307c08eaaa1c',
+            'tar.gz' => 
'a2def5d534d57c6a0236f2265de7537608af871900a4f7955eff463e9e38247d',
+            'tar.bz2' => 
'ce25d2610a5f9522ac8f53fbb7b8280b5c021991e9bd9137068c9c629d9ffb56',
+            'tar.xz' => 
'e454c6f7c89a42f41ebb06dc5c3578e8c8b5f1a3f0da6675665affab04e221f7',
         ]
     ];
 
diff --git a/releases/8_4_20.php b/releases/8_4_20.php
new file mode 100644
index 0000000000..d684a68c78
--- /dev/null
+++ b/releases/8_4_20.php
@@ -0,0 +1,16 @@
+<?php
+$_SERVER['BASE_PAGE'] = 'releases/8_4_20.php';
+include_once __DIR__ . '/../include/prepend.inc';
+site_header('PHP 8.4.20 Release Announcement');
+?>
+<h1>PHP 8.4.20 Release Announcement</h1>
+
+<p>The PHP development team announces the immediate availability of PHP 
8.4.20. This is a bug fix release.</p>
+
+<p>All PHP 8.4 users are encouraged to upgrade to this version.</p>
+
+<p>For source downloads of PHP 8.4.20 please visit our <a 
href="https://www.php.net/downloads.php";>downloads page</a>,
+Windows source and binaries can also be found <a 
href="https://www.php.net/downloads.php?os=windows&amp;version=8.4";>there</a>.
+The list of changes is recorded in the <a 
href="https://www.php.net/ChangeLog-8.php#8.4.20";>ChangeLog</a>.
+</p>
+<?php site_footer();

Reply via email to