mirror of
https://github.com/bdnugget/php-src.git
synced 2026-11-14 04:30:50 +00:00
Compare commits
10
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b1a8ab0ba1 | ||
|
|
7732f7d407 | ||
|
|
c5b16078e3 | ||
|
|
906168e9fb | ||
|
|
f6363e60e5 | ||
|
|
0ab9da70b5 | ||
|
|
aa3bb91072 | ||
|
|
292c5afa13 | ||
|
|
d425ed71f4 | ||
|
|
097dc16bf3 |
No files matched your search
@@ -1,9 +1,18 @@
|
||||
PHP NEWS
|
||||
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
19 Dec 2019, PHP 7.4.1
|
||||
|
||||
?? ??? ????, PHP 7.4.1
|
||||
- Bcmath:
|
||||
. Fixed bug #78878 (Buffer underflow in bc_shift_addsub). (CVE-2019-11046).
|
||||
(cmb)
|
||||
|
||||
- Core:
|
||||
. Fixed bug #78862 (link() silently truncates after a null byte on Windows).
|
||||
(CVE-2019-11044). (cmb)
|
||||
. Fixed bug #78863 (DirectoryIterator class silently truncates after a null
|
||||
byte). (CVE-2019-11045). (cmb)
|
||||
. Fixed bug #78943 (mail() may release string with refcount==1 twice).
|
||||
(CVE-2019-11049). (cmb)
|
||||
. Fixed bug #78810 (RW fetches do not throw "uninitialized property"
|
||||
exception). (Nikita)
|
||||
. Fixed bug #78868 (Calling __autoload() with incorrect EG(fake_scope) value).
|
||||
@@ -20,6 +29,12 @@ PHP NEWS
|
||||
. Fixed bug #78923 (Artifacts when convoluting image with transparency).
|
||||
(wilson chen)
|
||||
|
||||
- EXIF:
|
||||
. Fixed bug #78793 (Use-after-free in exif parsing under memory sanitizer).
|
||||
(CVE-2019-11050). (Nikita)
|
||||
. Fixed bug #78910 (Heap-buffer-overflow READ in exif). (CVE-2019-11047).
|
||||
(Nikita)
|
||||
|
||||
- FPM:
|
||||
. Fixed bug #76601 (Partially working php-fpm ater incomplete reload).
|
||||
(Maksim Nikulin)
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ dnl Basic autoconf initialization, generation of config.nice.
|
||||
dnl ----------------------------------------------------------------------------
|
||||
|
||||
AC_PREREQ([2.68])
|
||||
AC_INIT([PHP],[7.4.1-dev],[https://bugs.php.net],[php],[https://www.php.net])
|
||||
AC_INIT([PHP],[7.4.1],[https://bugs.php.net],[php],[https://www.php.net])
|
||||
AC_CONFIG_SRCDIR([main/php_version.h])
|
||||
AC_CONFIG_AUX_DIR([build])
|
||||
AC_PRESERVE_HELP_ORDER
|
||||
|
||||
@@ -56,9 +56,9 @@ bc_str2num (bc_num *num, char *str, int scale)
|
||||
zero_int = FALSE;
|
||||
if ( (*ptr == '+') || (*ptr == '-')) ptr++; /* Sign */
|
||||
while (*ptr == '0') ptr++; /* Skip leading zeros. */
|
||||
while (isdigit((int)*ptr)) ptr++, digits++; /* digits */
|
||||
while (*ptr >= '0' && *ptr <= '9') ptr++, digits++; /* digits */
|
||||
if (*ptr == '.') ptr++; /* decimal point */
|
||||
while (isdigit((int)*ptr)) ptr++, strscale++; /* digits */
|
||||
while (*ptr >= '0' && *ptr <= '9') ptr++, strscale++; /* digits */
|
||||
if ((*ptr != '\0') || (digits+strscale == 0))
|
||||
{
|
||||
*num = bc_copy_num (BCG(_zero_));
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
--TEST--
|
||||
Bug #78878 (Buffer underflow in bc_shift_addsub)
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!extension_loaded('bcmath')) die('skip bcmath extension not available');
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
print @bcmul("\xB26483605105519922841849335928742092", bcpowmod(2, 65535, -4e-4));
|
||||
?>
|
||||
--EXPECT--
|
||||
0
|
||||
+5
-3
@@ -3129,7 +3129,8 @@ static int exif_process_IFD_in_MAKERNOTE(image_info_type *ImageInfo, char * valu
|
||||
/*exif_error_docref(NULL EXIFERR_CC, ImageInfo, E_NOTICE, "check (%s)", maker_note->make?maker_note->make:"");*/
|
||||
if (maker_note->make && (!ImageInfo->make || strcmp(maker_note->make, ImageInfo->make)))
|
||||
continue;
|
||||
if (maker_note->id_string && strncmp(maker_note->id_string, value_ptr, maker_note->id_string_len))
|
||||
if (maker_note->id_string && value_len >= maker_note->id_string_len
|
||||
&& strncmp(maker_note->id_string, value_ptr, maker_note->id_string_len))
|
||||
continue;
|
||||
break;
|
||||
}
|
||||
@@ -3203,8 +3204,9 @@ static int exif_process_IFD_in_MAKERNOTE(image_info_type *ImageInfo, char * valu
|
||||
}
|
||||
|
||||
for (de=0;de<NumDirEntries;de++) {
|
||||
if (!exif_process_IFD_TAG(ImageInfo, dir_start + 2 + 12 * de,
|
||||
offset_base, data_len, displacement, section_index, 0, maker_note->tag_table)) {
|
||||
size_t offset = 2 + 12 * de;
|
||||
if (!exif_process_IFD_TAG(ImageInfo, dir_start + offset,
|
||||
offset_base, data_len - offset, displacement, section_index, 0, maker_note->tag_table)) {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
--TEST--
|
||||
Bug #78793: Use-after-free in exif parsing under memory sanitizer
|
||||
--FILE--
|
||||
<?php
|
||||
$f = "ext/exif/tests/bug77950.tiff";
|
||||
for ($i = 0; $i < 10; $i++) {
|
||||
@exif_read_data($f);
|
||||
}
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECT--
|
||||
===DONE===
|
||||
@@ -0,0 +1,17 @@
|
||||
--TEST--
|
||||
Bug #78910: Heap-buffer-overflow READ in exif (OSS-Fuzz #19044)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
var_dump(exif_read_data('data:image/jpg;base64,TU0AKgAAAAwgICAgAAIBDwAEAAAAAgAAACKSfCAgAAAAAEZVSklGSUxN'));
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Notice: exif_read_data(): Read from TIFF: tag(0x927C, MakerNote): Illegal format code 0x2020, switching to BYTE in %s on line %d
|
||||
|
||||
Warning: exif_read_data(): Process tag(x927C=MakerNote): Illegal format code 0x2020, suppose BYTE in %s on line %d
|
||||
|
||||
Warning: exif_read_data(): IFD data too short: 0x0000 offset 0x000C in %s on line %d
|
||||
|
||||
Warning: exif_read_data(): Invalid TIFF file in %s on line %d
|
||||
bool(false)
|
||||
@@ -708,10 +708,10 @@ void spl_filesystem_object_construct(INTERNAL_FUNCTION_PARAMETERS, zend_long cto
|
||||
|
||||
if (SPL_HAS_FLAG(ctor_flags, DIT_CTOR_FLAGS)) {
|
||||
flags = SPL_FILE_DIR_KEY_AS_PATHNAME|SPL_FILE_DIR_CURRENT_AS_FILEINFO;
|
||||
parsed = zend_parse_parameters(ZEND_NUM_ARGS(), "s|l", &path, &len, &flags);
|
||||
parsed = zend_parse_parameters(ZEND_NUM_ARGS(), "p|l", &path, &len, &flags);
|
||||
} else {
|
||||
flags = SPL_FILE_DIR_KEY_AS_PATHNAME|SPL_FILE_DIR_CURRENT_AS_SELF;
|
||||
parsed = zend_parse_parameters(ZEND_NUM_ARGS(), "s", &path, &len);
|
||||
parsed = zend_parse_parameters(ZEND_NUM_ARGS(), "p", &path, &len);
|
||||
}
|
||||
if (SPL_HAS_FLAG(ctor_flags, SPL_FILE_DIR_SKIPDOTS)) {
|
||||
flags |= SPL_FILE_DIR_SKIPDOTS;
|
||||
|
||||
@@ -5,7 +5,7 @@ Bug #54291 (Crash iterating DirectoryIterator for dir name starting with \0)
|
||||
$dir = new DirectoryIterator("\x00/abc");
|
||||
$dir->isFile();
|
||||
--EXPECTF--
|
||||
Fatal error: Uncaught UnexpectedValueException: Failed to open directory "" in %s:%d
|
||||
Fatal error: Uncaught UnexpectedValueException: DirectoryIterator::__construct() expects parameter 1 to be a valid path, string given in %s:%d
|
||||
Stack trace:
|
||||
#0 %s(%d): DirectoryIterator->__construct('\x00/abc')
|
||||
#1 {main}
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
--TEST--
|
||||
Bug #78863 (DirectoryIterator class silently truncates after a null byte)
|
||||
--FILE--
|
||||
<?php
|
||||
$dir = __DIR__ . '/bug78863';
|
||||
mkdir($dir);
|
||||
touch("$dir/bad");
|
||||
mkdir("$dir/sub");
|
||||
touch("$dir/sub/good");
|
||||
|
||||
$it = new DirectoryIterator(__DIR__ . "/bug78863\0/sub");
|
||||
foreach ($it as $fileinfo) {
|
||||
if (!$fileinfo->isDot()) {
|
||||
var_dump($fileinfo->getFilename());
|
||||
}
|
||||
}
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Uncaught UnexpectedValueException: DirectoryIterator::__construct() expects parameter 1 to be a valid path, string given in %s:%d
|
||||
Stack trace:
|
||||
#0 %s(%d): DirectoryIterator->__construct('%s')
|
||||
#1 {main}
|
||||
thrown in %s on line %d
|
||||
--CLEAN--
|
||||
<?php
|
||||
$dir = __DIR__ . '/bug78863';
|
||||
unlink("$dir/sub/good");
|
||||
rmdir("$dir/sub");
|
||||
unlink("$dir/bad");
|
||||
rmdir($dir);
|
||||
?>
|
||||
@@ -0,0 +1,17 @@
|
||||
--TEST--
|
||||
Bug #78862 (link() silently truncates after a null byte on Windows)
|
||||
--FILE--
|
||||
<?php
|
||||
file_put_contents(__DIR__ . '/bug78862.target', 'foo');
|
||||
var_dump(link(__DIR__ . "/bug78862.target\0more", __DIR__ . "/bug78862.link\0more"));
|
||||
var_dump(file_exists(__DIR__ . '/bug78862.link'));
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: link() expects parameter 1 to be a valid path, string given in %s on line %d
|
||||
NULL
|
||||
bool(false)
|
||||
--CLEAN--
|
||||
<?php
|
||||
unlink(__DIR__ . '/bug78862.target');
|
||||
unlink(__DIR__ . '/bug78862.link');
|
||||
?>
|
||||
+4
-4
@@ -2,7 +2,7 @@
|
||||
/* edit configure.ac to change version number */
|
||||
#define PHP_MAJOR_VERSION 7
|
||||
#define PHP_MINOR_VERSION 4
|
||||
#define PHP_RELEASE_VERSION 0
|
||||
#define PHP_EXTRA_VERSION "-dev"
|
||||
#define PHP_VERSION "7.4.0-dev"
|
||||
#define PHP_VERSION_ID 70400
|
||||
#define PHP_RELEASE_VERSION 1
|
||||
#define PHP_EXTRA_VERSION ""
|
||||
#define PHP_VERSION "7.4.1"
|
||||
#define PHP_VERSION_ID 70401
|
||||
@@ -207,9 +207,6 @@ PHPAPI int TSendMail(char *host, int *error, char **error_message,
|
||||
/* Create a lowercased header for all the searches so we're finally case
|
||||
* insensitive when searching for a pattern. */
|
||||
headers_lc = zend_string_tolower(headers_trim);
|
||||
if (headers_lc == headers_trim) {
|
||||
zend_string_release_ex(headers_lc, 0);
|
||||
}
|
||||
}
|
||||
|
||||
/* Fall back to sendmail_from php.ini setting */
|
||||
|
||||
Reference in new issue
Block a user