mirror of
https://github.com/bdnugget/php-src.git
synced 2026-11-11 19:20:50 +00:00
Compare commits
14
Commits
php-7.3.25
...
php-5.6.10
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c9e5f38e5b | ||
|
|
13fbd03e9b | ||
|
|
a6d7dd302c | ||
|
|
d2ac264ffe | ||
|
|
8fc52d77d6 | ||
|
|
07fb924c22 | ||
|
|
68722deccf | ||
|
|
f8d2726267 | ||
|
|
c6dc3fc7f4 | ||
|
|
c056c5801c | ||
|
|
a54f5aa2ae | ||
|
|
0881b98d82 | ||
|
|
8b7149636a | ||
|
|
5845f309b7 |
No files matched your search
@@ -1,6 +1,6 @@
|
||||
PHP NEWS
|
||||
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
?? Jun 2015, PHP 5.6.10
|
||||
11 Jun 2015, PHP 5.6.10
|
||||
|
||||
- Core:
|
||||
. Fixed bug #66048 (temp. directory is cached during multiple requests).
|
||||
@@ -12,6 +12,13 @@ PHP NEWS
|
||||
(Christoph M. Becker)
|
||||
. Fixed POST data processing slowdown due to small input buffer size
|
||||
on Windows. (Jorge Oliveira, Anatol)
|
||||
. Fixed bug #69646 (OS command injection vulnerability in escapeshellarg).
|
||||
(Anatol Belski)
|
||||
. Fixed bug #69719 (Incorrect handling of paths with NULs). (Stas)
|
||||
|
||||
- FTP
|
||||
. Improved fix for bug #69545 (Integer overflow in ftp_genlist()
|
||||
resulting in heap overflow). (Max Spelsberg)
|
||||
|
||||
- GD:
|
||||
. Fixed bug #69479 (GD fails to build with newer libvpx). (Remi)
|
||||
@@ -19,9 +26,20 @@ PHP NEWS
|
||||
- Iconv:
|
||||
. Fixed bug #48147 (iconv with //IGNORE cuts the string). (Stas)
|
||||
|
||||
- Litespeed SAPI:
|
||||
. Fixed bug #68812 (Unchecked return value). (George Wang)
|
||||
|
||||
- Mail:
|
||||
. Fixed bug #68776 (mail() does not have mail header injection prevention for
|
||||
additional headers). (Yasuo)
|
||||
|
||||
- MCrypt:
|
||||
. Added file descriptor caching to mcrypt_create_iv() (Leigh)
|
||||
|
||||
- Opcache
|
||||
. Fixed bug #69549 (Memory leak with opcache.optimization_level=0xFFFFFFFF).
|
||||
(Laruence, Dmitry)
|
||||
|
||||
- Phar:
|
||||
. Fixed bug #69680 (phar symlink in binary directory broken).
|
||||
(Matteo Bernardini, Remi)
|
||||
@@ -29,6 +47,10 @@ PHP NEWS
|
||||
- Postgres:
|
||||
. Fixed bug #69667 (segfault in php_pgsql_meta_data). (Remi)
|
||||
|
||||
- Sqlite3:
|
||||
. Upgrade bundled sqlite to 3.8.10.2. (CVE-2015-3414, CVE-2015-3415,
|
||||
CVE-2015-3416) (Kaplan)
|
||||
|
||||
14 May 2015, PHP 5.6.9
|
||||
|
||||
- Core:
|
||||
|
||||
+1
-1
@@ -120,7 +120,7 @@ int zend_sprintf(char *buffer, const char *format, ...);
|
||||
PHP_MAJOR_VERSION=5
|
||||
PHP_MINOR_VERSION=6
|
||||
PHP_RELEASE_VERSION=10
|
||||
PHP_EXTRA_VERSION="-dev"
|
||||
PHP_EXTRA_VERSION=""
|
||||
PHP_VERSION="$PHP_MAJOR_VERSION.$PHP_MINOR_VERSION.$PHP_RELEASE_VERSION$PHP_EXTRA_VERSION"
|
||||
PHP_VERSION_ID=`expr [$]PHP_MAJOR_VERSION \* 10000 + [$]PHP_MINOR_VERSION \* 100 + [$]PHP_RELEASE_VERSION`
|
||||
|
||||
|
||||
+17
-5
@@ -1700,7 +1700,7 @@ PHP_FUNCTION(dom_document_save)
|
||||
char *file;
|
||||
long options = 0;
|
||||
|
||||
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os|l", &id, dom_document_class_entry, &file, &file_len, &options) == FAILURE) {
|
||||
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Op|l", &id, dom_document_class_entry, &file, &file_len, &options) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1930,7 +1930,7 @@ static void _dom_document_schema_validate(INTERNAL_FUNCTION_PARAMETERS, int type
|
||||
int is_valid;
|
||||
char resolved_path[MAXPATHLEN + 1];
|
||||
|
||||
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Op|l", &id, dom_document_class_entry, &source, &source_len, &flags) == FAILURE) {
|
||||
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os|l", &id, dom_document_class_entry, &source, &source_len, &flags) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1943,6 +1943,10 @@ static void _dom_document_schema_validate(INTERNAL_FUNCTION_PARAMETERS, int type
|
||||
|
||||
switch (type) {
|
||||
case DOM_LOAD_FILE:
|
||||
if (CHECK_NULL_PATH(source, source_len)) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid Schema file source");
|
||||
RETURN_FALSE;
|
||||
}
|
||||
valid_file = _dom_get_valid_file_path(source, resolved_path, MAXPATHLEN TSRMLS_CC);
|
||||
if (!valid_file) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid Schema file source");
|
||||
@@ -2026,7 +2030,7 @@ static void _dom_document_relaxNG_validate(INTERNAL_FUNCTION_PARAMETERS, int typ
|
||||
int is_valid;
|
||||
char resolved_path[MAXPATHLEN + 1];
|
||||
|
||||
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Op", &id, dom_document_class_entry, &source, &source_len) == FAILURE) {
|
||||
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &id, dom_document_class_entry, &source, &source_len) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2039,6 +2043,10 @@ static void _dom_document_relaxNG_validate(INTERNAL_FUNCTION_PARAMETERS, int typ
|
||||
|
||||
switch (type) {
|
||||
case DOM_LOAD_FILE:
|
||||
if (CHECK_NULL_PATH(source, source_len)) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid RelaxNG file source");
|
||||
RETURN_FALSE;
|
||||
}
|
||||
valid_file = _dom_get_valid_file_path(source, resolved_path, MAXPATHLEN TSRMLS_CC);
|
||||
if (!valid_file) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid RelaxNG file source");
|
||||
@@ -2119,7 +2127,7 @@ static void dom_load_html(INTERNAL_FUNCTION_PARAMETERS, int mode) /* {{{ */
|
||||
|
||||
id = getThis();
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "p|l", &source, &source_len, &options) == FAILURE) {
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", &source, &source_len, &options) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2129,6 +2137,10 @@ static void dom_load_html(INTERNAL_FUNCTION_PARAMETERS, int mode) /* {{{ */
|
||||
}
|
||||
|
||||
if (mode == DOM_LOAD_FILE) {
|
||||
if (CHECK_NULL_PATH(source, source_len)) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid file source");
|
||||
RETURN_FALSE;
|
||||
}
|
||||
ctxt = htmlCreateFileParserCtxt(source, NULL);
|
||||
} else {
|
||||
source_len = xmlStrlen(source);
|
||||
@@ -2217,7 +2229,7 @@ PHP_FUNCTION(dom_document_save_html_file)
|
||||
char *file;
|
||||
const char *encoding;
|
||||
|
||||
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &id, dom_document_class_entry, &file, &file_len) == FAILURE) {
|
||||
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Op", &id, dom_document_class_entry, &file, &file_len) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -15,9 +15,9 @@ $result = $doc->loadHTMLFile("");
|
||||
assert('$result === false');
|
||||
$doc = new DOMDocument();
|
||||
$result = $doc->loadHTMLFile("text.html\0something");
|
||||
assert('$result === null');
|
||||
assert('$result === false');
|
||||
?>
|
||||
--EXPECTF--
|
||||
%r(PHP ){0,1}%rWarning: DOMDocument::loadHTMLFile(): Empty string supplied as input %s
|
||||
|
||||
%r(PHP ){0,1}%rWarning: DOMDocument::loadHTMLFile() expects parameter 1 to be a valid path, string given %s
|
||||
%r(PHP ){0,1}%rWarning: DOMDocument::loadHTMLFile(): Invalid file source %s
|
||||
@@ -1663,8 +1663,6 @@ ftp_genlist(ftpbuf_t *ftp, const char *cmd, const char *path TSRMLS_DC)
|
||||
for (ptr = data->buf; rcvd; rcvd--, ptr++) {
|
||||
if (*ptr == '\n' && lastch == '\r') {
|
||||
lines++;
|
||||
} else {
|
||||
size++;
|
||||
}
|
||||
lastch = *ptr;
|
||||
}
|
||||
|
||||
+7
-7
@@ -1750,7 +1750,7 @@ PHP_FUNCTION(imagefilledarc)
|
||||
long cx, cy, w, h, ST, E, col, style;
|
||||
gdImagePtr im;
|
||||
int e, st;
|
||||
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rllllllll", &IM, &cx, &cy, &w, &h, &ST, &E, &col, &style) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
@@ -1991,7 +1991,7 @@ PHP_FUNCTION(imagegrabwindow)
|
||||
if ( handle == 0 ) {
|
||||
goto clean;
|
||||
}
|
||||
pPrintWindow = (tPrintWindow) GetProcAddress(handle, "PrintWindow");
|
||||
pPrintWindow = (tPrintWindow) GetProcAddress(handle, "PrintWindow");
|
||||
|
||||
if ( pPrintWindow ) {
|
||||
pPrintWindow(window, memDC, (UINT) client_area);
|
||||
@@ -3860,7 +3860,7 @@ static void php_imagettftext_common(INTERNAL_FUNCTION_PARAMETERS, int mode, int
|
||||
if (zend_hash_get_current_data_ex(HASH_OF(EXT), (void **) &item, &pos) == FAILURE) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
if (strcmp("linespacing", key) == 0) {
|
||||
convert_to_double_ex(item);
|
||||
strex.flags |= gdFTEX_LINESPACE;
|
||||
@@ -3939,7 +3939,7 @@ PHP_FUNCTION(imagepsloadfont)
|
||||
struct stat st;
|
||||
#endif
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &file, &file_len) == FAILURE) {
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "p", &file, &file_len) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -4279,11 +4279,11 @@ PHP_FUNCTION(imagepsbbox)
|
||||
if (argc != 3 && argc != 6) {
|
||||
ZEND_WRONG_PARAM_COUNT();
|
||||
}
|
||||
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "srl|lld", &str, &str_len, &fnt, &sz, &sp, &wd, &angle) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (argc == 6) {
|
||||
space = sp;
|
||||
add_width = wd;
|
||||
@@ -4459,7 +4459,7 @@ static void _php_image_convert(INTERNAL_FUNCTION_PARAMETERS, int image_type )
|
||||
int x, y;
|
||||
float x_ratio, y_ratio;
|
||||
long ignore_warning;
|
||||
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "pplll", &f_org, &f_org_len, &f_dest, &f_dest_len, &height, &width, &threshold) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -314,7 +314,7 @@ them both to 0; an emulation function will be used. */
|
||||
#define PACKAGE_NAME "PCRE"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "PCRE 8.36"
|
||||
#define PACKAGE_STRING "PCRE 8.37"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "pcre"
|
||||
@@ -323,7 +323,7 @@ them both to 0; an emulation function will be used. */
|
||||
#define PACKAGE_URL ""
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "8.36"
|
||||
#define PACKAGE_VERSION "8.37"
|
||||
|
||||
/* to make a symbol visible */
|
||||
/* #undef PCRECPP_EXP_DECL */
|
||||
@@ -439,7 +439,7 @@ them both to 0; an emulation function will be used. */
|
||||
|
||||
/* Version number of package */
|
||||
#ifndef VERSION
|
||||
#define VERSION "8.36"
|
||||
#define VERSION "8.37"
|
||||
#endif
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
--TEST--
|
||||
PostgreSQL pg_select() - basic test using schema
|
||||
PostgreSQL pg_insert() - test for CVE-2015-1532
|
||||
--SKIPIF--
|
||||
<?php include("skipif.inc"); ?>
|
||||
--FILE--
|
||||
|
||||
+4414
-1919
File diff suppressed because it is too large.
Load diff
+407
-291
File diff suppressed because it is too large.
Load diff
@@ -380,6 +380,14 @@ PHPAPI char *php_escape_shell_arg(char *str)
|
||||
}
|
||||
}
|
||||
#ifdef PHP_WIN32
|
||||
if (y > 0 && '\\' == cmd[y - 1]) {
|
||||
int k = 0, n = y - 1;
|
||||
for (; n >= 0 && '\\' == cmd[n]; n--, k++);
|
||||
if (k % 2) {
|
||||
cmd[y++] = '\\';
|
||||
}
|
||||
}
|
||||
|
||||
cmd[y++] = '"';
|
||||
#else
|
||||
cmd[y++] = '\'';
|
||||
|
||||
@@ -223,6 +223,44 @@ void php_mail_log_to_file(char *filename, char *message, size_t message_size TSR
|
||||
}
|
||||
|
||||
|
||||
static int php_mail_detect_multiple_crlf(char *hdr) {
|
||||
/* This function detects multiple/malformed multiple newlines. */
|
||||
size_t len;
|
||||
|
||||
if (!hdr) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Should not have any newlines at the beginning. */
|
||||
/* RFC 2822 2.2. Header Fields */
|
||||
if (*hdr < 33 || *hdr > 126 || *hdr == ':') {
|
||||
return 1;
|
||||
}
|
||||
|
||||
while(*hdr) {
|
||||
if (*hdr == '\r') {
|
||||
if (*(hdr+1) == '\0' || *(hdr+1) == '\r' || (*(hdr+1) == '\n' && (*(hdr+2) == '\0' || *(hdr+2) == '\n' || *(hdr+2) == '\r'))) {
|
||||
/* Malformed or multiple newlines. */
|
||||
return 1;
|
||||
} else {
|
||||
hdr += 2;
|
||||
}
|
||||
} else if (*hdr == '\n') {
|
||||
if (*(hdr+1) == '\0' || *(hdr+1) == '\r' || *(hdr+1) == '\n') {
|
||||
/* Malformed or multiple newlines. */
|
||||
return 1;
|
||||
} else {
|
||||
hdr += 2;
|
||||
}
|
||||
} else {
|
||||
hdr++;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* {{{ php_mail
|
||||
*/
|
||||
PHPAPI int php_mail(char *to, char *subject, char *message, char *headers, char *extra_cmd TSRMLS_DC)
|
||||
@@ -276,6 +314,7 @@ PHPAPI int php_mail(char *to, char *subject, char *message, char *headers, char
|
||||
|
||||
efree(tmp);
|
||||
}
|
||||
|
||||
if (PG(mail_x_header)) {
|
||||
const char *tmp = zend_get_executed_filename(TSRMLS_C);
|
||||
char *f;
|
||||
@@ -291,6 +330,11 @@ PHPAPI int php_mail(char *to, char *subject, char *message, char *headers, char
|
||||
efree(f);
|
||||
}
|
||||
|
||||
if (hdr && php_mail_detect_multiple_crlf(hdr)) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Multiple or malformed newlines found in additional_header");
|
||||
MAIL_RET(0);
|
||||
}
|
||||
|
||||
if (!sendmail_path) {
|
||||
#if (defined PHP_WIN32 || defined NETWARE)
|
||||
/* handle old style win smtp sending */
|
||||
|
||||
@@ -0,0 +1,329 @@
|
||||
--TEST--
|
||||
Test mail() function : basic functionality
|
||||
--INI--
|
||||
sendmail_path=tee mailBasic.out >/dev/null
|
||||
mail.add_x_header = Off
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if(substr(PHP_OS, 0, 3) == "WIN")
|
||||
die("skip Won't run on Windows");
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
/* Prototype : int mail(string to, string subject, string message [, string additional_headers [, string additional_parameters]])
|
||||
* Description: Send an email message with invalid addtional_headers
|
||||
* Source code: ext/standard/mail.c
|
||||
* Alias to functions:
|
||||
*/
|
||||
|
||||
echo "*** Testing mail() : basic functionality ***\n";
|
||||
|
||||
|
||||
// Valid header
|
||||
$to = 'user@example.com';
|
||||
$subject = 'Test Subject';
|
||||
$message = 'A Message';
|
||||
$additional_headers = "HEAD1: a\r\nHEAD2: b\r\n";
|
||||
$outFile = "mailBasic.out";
|
||||
@unlink($outFile);
|
||||
|
||||
echo "-- Valid Header --\n";
|
||||
// Calling mail() with all additional headers
|
||||
var_dump( mail($to, $subject, $message, $additional_headers) );
|
||||
echo file_get_contents($outFile);
|
||||
unlink($outFile);
|
||||
|
||||
// Valid header
|
||||
$additional_headers = "HEAD1: a\nHEAD2: b\n";
|
||||
@unlink($outFile);
|
||||
|
||||
echo "-- Valid Header --\n";
|
||||
// Calling mail() with all additional headers
|
||||
var_dump( mail($to, $subject, $message, $additional_headers) );
|
||||
echo @file_get_contents($outFile);
|
||||
@unlink($outFile);
|
||||
|
||||
// Valid header
|
||||
// \r is accepted as valid. This may be changed to invalid.
|
||||
$additional_headers = "HEAD1: a\rHEAD2: b\r";
|
||||
@unlink($outFile);
|
||||
|
||||
echo "-- Valid Header --\n";
|
||||
// Calling mail() with all additional headers
|
||||
var_dump( mail($to, $subject, $message, $additional_headers) );
|
||||
echo @file_get_contents($outFile);
|
||||
@unlink($outFile);
|
||||
|
||||
//===============================================================================
|
||||
// Invalid header
|
||||
$additional_headers = "\nHEAD1: a\nHEAD2: b\n";
|
||||
@unlink($outFile);
|
||||
|
||||
echo "-- Invalid Header - preceeding newline--\n";
|
||||
// Calling mail() with all additional headers
|
||||
var_dump( mail($to, $subject, $message, $additional_headers) );
|
||||
echo @file_get_contents($outFile);
|
||||
@unlink($outFile);
|
||||
|
||||
// Invalid header
|
||||
$additional_headers = "\rHEAD1: a\nHEAD2: b\r";
|
||||
@unlink($outFile);
|
||||
|
||||
echo "-- Invalid Header - preceeding newline--\n";
|
||||
// Calling mail() with all additional headers
|
||||
var_dump( mail($to, $subject, $message, $additional_headers) );
|
||||
echo @file_get_contents($outFile);
|
||||
@unlink($outFile);
|
||||
|
||||
// Invalid header
|
||||
$additional_headers = "\r\nHEAD1: a\r\nHEAD2: b\r\n";
|
||||
@unlink($outFile);
|
||||
|
||||
echo "-- Invalid Header - preceeding newline--\n";
|
||||
// Calling mail() with all additional headers
|
||||
var_dump( mail($to, $subject, $message, $additional_headers) );
|
||||
echo @file_get_contents($outFile);
|
||||
@unlink($outFile);
|
||||
|
||||
// Invalid header
|
||||
$additional_headers = "\r\n\r\nHEAD1: a\r\nHEAD2: b\r\n";
|
||||
@unlink($outFile);
|
||||
|
||||
echo "-- Invalid Header - preceeding newline--\n";
|
||||
// Calling mail() with all additional headers
|
||||
var_dump( mail($to, $subject, $message, $additional_headers) );
|
||||
echo @file_get_contents($outFile);
|
||||
@unlink($outFile);
|
||||
|
||||
// Invalid header
|
||||
$additional_headers = "\n\nHEAD1: a\r\nHEAD2: b\r\n";
|
||||
@unlink($outFile);
|
||||
|
||||
echo "-- Invalid Header - preceeding newline--\n";
|
||||
// Calling mail() with all additional headers
|
||||
var_dump( mail($to, $subject, $message, $additional_headers) );
|
||||
echo @file_get_contents($outFile);
|
||||
@unlink($outFile);
|
||||
|
||||
// Invalid header
|
||||
$additional_headers = "\r\rHEAD1: a\r\nHEAD2: b\r\n";
|
||||
@unlink($outFile);
|
||||
|
||||
echo "-- Invalid Header - preceeding newline--\n";
|
||||
// Calling mail() with all additional headers
|
||||
var_dump( mail($to, $subject, $message, $additional_headers) );
|
||||
echo @file_get_contents($outFile);
|
||||
@unlink($outFile);
|
||||
|
||||
// Invalid header
|
||||
$additional_headers = "HEAD1: a\r\n\r\nHEAD2: b\r\n";
|
||||
@unlink($outFile);
|
||||
|
||||
echo "-- Invalid Header - multiple newlines in the middle --\n";
|
||||
// Calling mail() with all additional headers
|
||||
var_dump( mail($to, $subject, $message, $additional_headers) );
|
||||
echo @file_get_contents($outFile);
|
||||
@unlink($outFile);
|
||||
|
||||
// Invalid header
|
||||
$additional_headers = "HEAD1: a\r\n\nHEAD2: b\r\n";
|
||||
@unlink($outFile);
|
||||
|
||||
echo "-- Invalid Header - multiple newlines in the middle --\n";
|
||||
// Calling mail() with all additional headers
|
||||
var_dump( mail($to, $subject, $message, $additional_headers) );
|
||||
echo @file_get_contents($outFile);
|
||||
@unlink($outFile);
|
||||
|
||||
// Invalid header
|
||||
$additional_headers = "HEAD1: a\n\nHEAD2: b\r\n";
|
||||
@unlink($outFile);
|
||||
|
||||
echo "-- Invalid Header - multiple newlines in the middle --\n";
|
||||
// Calling mail() with all additional headers
|
||||
var_dump( mail($to, $subject, $message, $additional_headers) );
|
||||
echo @file_get_contents($outFile);
|
||||
@unlink($outFile);
|
||||
|
||||
// Invalid header
|
||||
$additional_headers = "HEAD1: a\r\rHEAD2: b\r\n";
|
||||
@unlink($outFile);
|
||||
|
||||
echo "-- Invalid Header - multiple newlines in the middle --\n";
|
||||
// Calling mail() with all additional headers
|
||||
var_dump( mail($to, $subject, $message, $additional_headers) );
|
||||
echo @file_get_contents($outFile);
|
||||
@unlink($outFile);
|
||||
|
||||
// Invalid header
|
||||
$additional_headers = "HEAD1: a\n\rHEAD2: b\r\n";
|
||||
@unlink($outFile);
|
||||
|
||||
echo "-- Invalid Header - multiple newlines in the middle --\n";
|
||||
// Calling mail() with all additional headers
|
||||
var_dump( mail($to, $subject, $message, $additional_headers) );
|
||||
echo @file_get_contents($outFile);
|
||||
@unlink($outFile);
|
||||
|
||||
// Invalid header
|
||||
$additional_headers = "HEAD1: a\n\r\nHEAD2: b\r\n";
|
||||
@unlink($outFile);
|
||||
|
||||
echo "-- Invalid Header - multiple newlines in the middle --\n";
|
||||
// Calling mail() with all additional headers
|
||||
var_dump( mail($to, $subject, $message, $additional_headers) );
|
||||
echo @file_get_contents($outFile);
|
||||
@unlink($outFile);
|
||||
|
||||
// Invalid header
|
||||
// Invalid, but PHP_FUNCTION(mail) trims newlines
|
||||
$additional_headers = "HEAD1: a\r\nHEAD2: b\r\n\n";
|
||||
@unlink($outFile);
|
||||
|
||||
echo "-- Invalid Header - trailing newlines --\n";
|
||||
// Calling mail() with all additional headers
|
||||
var_dump( mail($to, $subject, $message, $additional_headers) );
|
||||
echo @file_get_contents($outFile);
|
||||
@unlink($outFile);
|
||||
|
||||
// Invalid header
|
||||
// Invalid, but PHP_FUNCTION(mail) trims newlines
|
||||
$additional_headers = "HEAD1: a\r\nHEAD2: b\n\n";
|
||||
@unlink($outFile);
|
||||
|
||||
echo "-- Invalid Header - trailing newlines --\n";
|
||||
// Calling mail() with all additional headers
|
||||
var_dump( mail($to, $subject, $message, $additional_headers) );
|
||||
echo @file_get_contents($outFile);
|
||||
@unlink($outFile);
|
||||
|
||||
// Invalid header
|
||||
// Invalid, but PHP_FUNCTION(mail) trims newlines
|
||||
$additional_headers = "HEAD1: a\r\nHEAD2: b\n";
|
||||
@unlink($outFile);
|
||||
|
||||
echo "-- Invalid Header - trailing newlines --\n";
|
||||
// Calling mail() with all additional headers
|
||||
var_dump( mail($to, $subject, $message, $additional_headers) );
|
||||
echo @file_get_contents($outFile);
|
||||
@unlink($outFile);
|
||||
|
||||
// Invalid header
|
||||
// Invalid, but PHP_FUNCTION(mail) trims newlines
|
||||
$additional_headers = "HEAD1: a\r\nHEAD2: b\r";
|
||||
@unlink($outFile);
|
||||
|
||||
echo "-- Invalid Header - trailing newlines --\n";
|
||||
// Calling mail() with all additional headers
|
||||
var_dump( mail($to, $subject, $message, $additional_headers) );
|
||||
echo @file_get_contents($outFile);
|
||||
@unlink($outFile);
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
*** Testing mail() : basic functionality ***
|
||||
-- Valid Header --
|
||||
bool(true)
|
||||
To: user@example.com
|
||||
Subject: Test Subject
|
||||
HEAD1: a
|
||||
HEAD2: b
|
||||
|
||||
A Message
|
||||
-- Valid Header --
|
||||
bool(true)
|
||||
To: user@example.com
|
||||
Subject: Test Subject
|
||||
HEAD1: a
|
||||
HEAD2: b
|
||||
|
||||
A Message
|
||||
-- Valid Header --
|
||||
bool(true)
|
||||
To: user@example.com
|
||||
Subject: Test Subject
|
||||
HEAD1: a␍HEAD2: b
|
||||
|
||||
A Message
|
||||
-- Invalid Header - preceeding newline--
|
||||
|
||||
Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
|
||||
bool(false)
|
||||
-- Invalid Header - preceeding newline--
|
||||
|
||||
Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
|
||||
bool(false)
|
||||
-- Invalid Header - preceeding newline--
|
||||
|
||||
Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
|
||||
bool(false)
|
||||
-- Invalid Header - preceeding newline--
|
||||
|
||||
Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
|
||||
bool(false)
|
||||
-- Invalid Header - preceeding newline--
|
||||
|
||||
Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
|
||||
bool(false)
|
||||
-- Invalid Header - preceeding newline--
|
||||
|
||||
Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
|
||||
bool(false)
|
||||
-- Invalid Header - multiple newlines in the middle --
|
||||
|
||||
Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
|
||||
bool(false)
|
||||
-- Invalid Header - multiple newlines in the middle --
|
||||
|
||||
Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
|
||||
bool(false)
|
||||
-- Invalid Header - multiple newlines in the middle --
|
||||
|
||||
Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
|
||||
bool(false)
|
||||
-- Invalid Header - multiple newlines in the middle --
|
||||
|
||||
Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
|
||||
bool(false)
|
||||
-- Invalid Header - multiple newlines in the middle --
|
||||
|
||||
Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
|
||||
bool(false)
|
||||
-- Invalid Header - multiple newlines in the middle --
|
||||
|
||||
Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
|
||||
bool(false)
|
||||
-- Invalid Header - trailing newlines --
|
||||
bool(true)
|
||||
To: user@example.com
|
||||
Subject: Test Subject
|
||||
HEAD1: a
|
||||
HEAD2: b
|
||||
|
||||
A Message
|
||||
-- Invalid Header - trailing newlines --
|
||||
bool(true)
|
||||
To: user@example.com
|
||||
Subject: Test Subject
|
||||
HEAD1: a
|
||||
HEAD2: b
|
||||
|
||||
A Message
|
||||
-- Invalid Header - trailing newlines --
|
||||
bool(true)
|
||||
To: user@example.com
|
||||
Subject: Test Subject
|
||||
HEAD1: a
|
||||
HEAD2: b
|
||||
|
||||
A Message
|
||||
-- Invalid Header - trailing newlines --
|
||||
bool(true)
|
||||
To: user@example.com
|
||||
Subject: Test Subject
|
||||
HEAD1: a
|
||||
HEAD2: b
|
||||
|
||||
A Message
|
||||
===DONE===
|
||||
+2
-2
@@ -3,6 +3,6 @@
|
||||
#define PHP_MAJOR_VERSION 5
|
||||
#define PHP_MINOR_VERSION 6
|
||||
#define PHP_RELEASE_VERSION 10
|
||||
#define PHP_EXTRA_VERSION "-dev"
|
||||
#define PHP_VERSION "5.6.10-dev"
|
||||
#define PHP_EXTRA_VERSION ""
|
||||
#define PHP_VERSION "5.6.10"
|
||||
#define PHP_VERSION_ID 50610
|
||||
@@ -3131,10 +3131,20 @@ static int lsapi_initSuEXEC()
|
||||
if ( !s_defaultUid || !s_defaultGid )
|
||||
{
|
||||
pw = getpwnam( "nobody" );
|
||||
if ( !s_defaultUid )
|
||||
s_defaultUid = pw->pw_uid;
|
||||
if ( !s_defaultGid )
|
||||
s_defaultGid = pw->pw_gid;
|
||||
if ( pw )
|
||||
{
|
||||
if ( !s_defaultUid )
|
||||
s_defaultUid = pw->pw_uid;
|
||||
if ( !s_defaultGid )
|
||||
s_defaultGid = pw->pw_gid;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( !s_defaultUid )
|
||||
s_defaultUid = 10000;
|
||||
if ( !s_defaultGid )
|
||||
s_defaultGid = 10000;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user