fix off-by-one in _php_image_output()

and prevent such errors in php_do_open_temporary_file()
This commit is contained in:
Antony Dovgal 2005-05-06 16:48:30 +00:00
parent 60c0c8e95c
commit 0a830b33fc
2 changed files with 5 additions and 2 deletions

View File

@ -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;

View File

@ -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 = "/";