mirror of
https://github.com/php/php-src.git
synced 2024-09-21 09:57:23 +00:00
fix off-by-one in _php_image_output()
and prevent such errors in php_do_open_temporary_file()
This commit is contained in:
parent
60c0c8e95c
commit
0a830b33fc
@ -1778,7 +1778,7 @@ static void _php_image_output(INTERNAL_FUNCTION_PARAMETERS, int image_type, char
|
||||
char buf[4096];
|
||||
char *path;
|
||||
|
||||
tmp = php_open_temporary_file("", "", &path TSRMLS_CC);
|
||||
tmp = php_open_temporary_file(NULL, NULL, &path TSRMLS_CC);
|
||||
if (tmp == NULL) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to open temporary file");
|
||||
RETURN_FALSE;
|
||||
|
@ -98,6 +98,7 @@ static int php_do_open_temporary_file(const char *path, const char *pfx, char **
|
||||
{
|
||||
char *trailing_slash;
|
||||
char *opened_path;
|
||||
int path_len = 0;
|
||||
int fd = -1;
|
||||
#ifndef HAVE_MKSTEMP
|
||||
int open_flags = O_CREAT | O_TRUNC | O_RDWR
|
||||
@ -111,11 +112,13 @@ static int php_do_open_temporary_file(const char *path, const char *pfx, char **
|
||||
return -1;
|
||||
}
|
||||
|
||||
path_len = strlen(path);
|
||||
|
||||
if (!(opened_path = emalloc(MAXPATHLEN))) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (IS_SLASH(path[strlen(path)-1])) {
|
||||
if (!path_len || IS_SLASH(path[path_len - 1])) {
|
||||
trailing_slash = "";
|
||||
} else {
|
||||
trailing_slash = "/";
|
||||
|
Loading…
Reference in New Issue
Block a user