mirror of
https://github.com/bdnugget/php-src.git
synced 2026-11-11 19:20:50 +00:00
Compare commits
15
Commits
PHP-5.6.31
...
PHP-5.5.26
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fa6f9e1004 | ||
|
|
bf72e13901 | ||
|
|
4bf3f646ee | ||
|
|
4bfa8694a5 | ||
|
|
3d70b1147c | ||
|
|
928dce708c | ||
|
|
e22f22e6ae | ||
|
|
58e590aac6 | ||
|
|
b16842e5a2 | ||
|
|
11928db0d3 | ||
|
|
68dec50c30 | ||
|
|
a2b7a0d7a3 | ||
|
|
71822e90e0 | ||
|
|
08d148c5c3 | ||
|
|
e415ad9c6b |
No files matched your search
@@ -1,6 +1,6 @@
|
||||
PHP NEWS
|
||||
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
?? ??? 2015, PHP 5.5.26
|
||||
11 Jun 2015, PHP 5.5.26
|
||||
|
||||
- Core:
|
||||
. Fixed bug #69566 (Conditional jump or move depends on uninitialised value
|
||||
@@ -9,6 +9,13 @@ PHP NEWS
|
||||
(Julien)
|
||||
. Fixed bug #69628 (complex GLOB_BRACE fails on Windows).
|
||||
(Christoph M. Becker)
|
||||
. 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)
|
||||
@@ -16,9 +23,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)
|
||||
|
||||
- PCRE:
|
||||
. Upgraded pcrelib to 8.37. (CVE-2015-2325, CVE-2015-2326)
|
||||
|
||||
@@ -29,9 +47,9 @@ PHP NEWS
|
||||
- Postgres:
|
||||
. Fixed bug #69667 (segfault in php_pgsql_meta_data). (Remi)
|
||||
|
||||
- Opcache
|
||||
. Fixed bug #69549 (Memory leak with opcache.optimization_level=0xFFFFFFFF).
|
||||
(Laruence, Dmitry)
|
||||
- Sqlite3:
|
||||
. Upgrade bundled sqlite to 3.8.10.2. (CVE-2015-3414, CVE-2015-3415,
|
||||
CVE-2015-3416) (Kaplan)
|
||||
|
||||
14 May 2015, PHP 5.5.25
|
||||
|
||||
|
||||
+1
-1
@@ -120,7 +120,7 @@ int zend_sprintf(char *buffer, const char *format, ...);
|
||||
PHP_MAJOR_VERSION=5
|
||||
PHP_MINOR_VERSION=5
|
||||
PHP_RELEASE_VERSION=26
|
||||
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
@@ -1761,7 +1761,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;
|
||||
}
|
||||
|
||||
@@ -1991,7 +1991,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;
|
||||
}
|
||||
|
||||
@@ -2004,6 +2004,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");
|
||||
@@ -2087,7 +2091,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;
|
||||
}
|
||||
|
||||
@@ -2100,6 +2104,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");
|
||||
@@ -2180,7 +2188,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;
|
||||
}
|
||||
|
||||
@@ -2190,6 +2198,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);
|
||||
@@ -2278,7 +2290,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;
|
||||
}
|
||||
|
||||
+6
-6
@@ -1735,7 +1735,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;
|
||||
}
|
||||
@@ -1976,7 +1976,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);
|
||||
@@ -3845,7 +3845,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;
|
||||
@@ -3924,7 +3924,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;
|
||||
}
|
||||
|
||||
@@ -4264,11 +4264,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;
|
||||
|
||||
@@ -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 5
|
||||
#define PHP_RELEASE_VERSION 26
|
||||
#define PHP_EXTRA_VERSION "-dev"
|
||||
#define PHP_VERSION "5.5.26-dev"
|
||||
#define PHP_EXTRA_VERSION ""
|
||||
#define PHP_VERSION "5.5.26"
|
||||
#define PHP_VERSION_ID 50526
|
||||
@@ -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