summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWez Furlong <wez@php.net>2004-03-29 21:44:07 +0000
committerWez Furlong <wez@php.net>2004-03-29 21:44:07 +0000
commit32be6f268b59eed7ec5f1bcfd0a88e112a50dd85 (patch)
treed0563b087c985c809a33a89b2e695d7c24643578
parent904dac52e2f1445899598d727c7fb511defb9d10 (diff)
downloadphp-git-32be6f268b59eed7ec5f1bcfd0a88e112a50dd85.tar.gz
Fix for Bug #26757: session.save_path defaults to bogus value on win32
Merge from branch with one main difference: the default save_path is set to the empty string on all platforms, whereas the code in the branch only does so for win32.
-rw-r--r--ext/session/mod_files.c6
-rw-r--r--ext/session/session.c2
-rw-r--r--main/php_open_temporary_file.c4
-rw-r--r--main/php_open_temporary_file.h1
-rw-r--r--php.ini-dist2
-rw-r--r--php.ini-recommended2
6 files changed, 12 insertions, 5 deletions
diff --git a/ext/session/mod_files.c b/ext/session/mod_files.c
index f4c35f9274..15cd5d7747 100644
--- a/ext/session/mod_files.c
+++ b/ext/session/mod_files.c
@@ -46,6 +46,7 @@
#include "php_session.h"
#include "mod_files.h"
#include "ext/standard/flock_compat.h"
+#include "php_open_temporary_file.h"
#define FILE_PREFIX "sess_"
@@ -239,6 +240,11 @@ PS_OPEN_FUNC(files)
size_t dirdepth = 0;
int filemode = 0600;
+ if (*save_path == '\0') {
+ /* if save path is an empty string, determine the temporary dir */
+ save_path = php_get_temporary_directory();
+ }
+
/* split up input parameter */
last = save_path;
p = strchr(save_path, ';');
diff --git a/ext/session/session.c b/ext/session/session.c
index 27bce4a2ba..ca8365dcd8 100644
--- a/ext/session/session.c
+++ b/ext/session/session.c
@@ -137,7 +137,7 @@ static PHP_INI_MH(OnUpdateSerializer)
PHP_INI_BEGIN()
STD_PHP_INI_BOOLEAN("session.bug_compat_42", "1", PHP_INI_ALL, OnUpdateBool, bug_compat, php_ps_globals, ps_globals)
STD_PHP_INI_BOOLEAN("session.bug_compat_warn", "1", PHP_INI_ALL, OnUpdateBool, bug_compat_warn, php_ps_globals, ps_globals)
- STD_PHP_INI_ENTRY("session.save_path", "/tmp", PHP_INI_ALL, OnUpdateString, save_path, php_ps_globals, ps_globals)
+ STD_PHP_INI_ENTRY("session.save_path", "", PHP_INI_ALL, OnUpdateString, save_path, php_ps_globals, ps_globals)
STD_PHP_INI_ENTRY("session.name", "PHPSESSID", PHP_INI_ALL, OnUpdateString, session_name, php_ps_globals, ps_globals)
PHP_INI_ENTRY("session.save_handler", "files", PHP_INI_ALL, OnUpdateSaveHandler)
STD_PHP_INI_BOOLEAN("session.auto_start", "0", PHP_INI_ALL, OnUpdateBool, auto_start, php_ps_globals, ps_globals)
diff --git a/main/php_open_temporary_file.c b/main/php_open_temporary_file.c
index a3db16deb6..b8c94528cd 100644
--- a/main/php_open_temporary_file.c
+++ b/main/php_open_temporary_file.c
@@ -164,7 +164,7 @@ static int php_do_open_temporary_file(const char *path, const char *pfx, char **
/*
* Determine where to place temporary files.
*/
-const char* get_temporary_directory()
+PHPAPI const char* php_get_temporary_directory(void)
{
/* Cache the chosen temporary directory. */
static char* temporary_directory;
@@ -231,7 +231,7 @@ PHPAPI int php_open_temporary_fd(const char *dir, const char *pfx, char **opened
fd = php_do_open_temporary_file(dir, pfx, opened_path_p TSRMLS_CC);
if (fd == -1) {
/* Use default temporary directory. */
- fd = php_do_open_temporary_file(get_temporary_directory(), pfx, opened_path_p TSRMLS_CC);
+ fd = php_do_open_temporary_file(php_get_temporary_directory(), pfx, opened_path_p TSRMLS_CC);
}
return fd;
}
diff --git a/main/php_open_temporary_file.h b/main/php_open_temporary_file.h
index db1c5f8493..500d2429c3 100644
--- a/main/php_open_temporary_file.h
+++ b/main/php_open_temporary_file.h
@@ -24,6 +24,7 @@
BEGIN_EXTERN_C()
PHPAPI FILE *php_open_temporary_file(const char *dir, const char *pfx, char **opened_path_p TSRMLS_DC);
PHPAPI int php_open_temporary_fd(const char *dir, const char *pfx, char **opened_path_p TSRMLS_DC);
+PHPAPI const char *php_get_temporary_directory(void);
END_EXTERN_C()
#endif /* PHP_OPEN_TEMPORARY_FILE_H */
diff --git a/php.ini-dist b/php.ini-dist
index 41d86659b2..e98064e45c 100644
--- a/php.ini-dist
+++ b/php.ini-dist
@@ -860,7 +860,7 @@ session.save_handler = files
;
; where MODE is the octal representation of the mode. Note that this
; does not overwrite the process's umask.
-session.save_path = "/tmp"
+;session.save_path = "/tmp"
; Whether to use cookies.
session.use_cookies = 1
diff --git a/php.ini-recommended b/php.ini-recommended
index 9584d54d85..7c6401f159 100644
--- a/php.ini-recommended
+++ b/php.ini-recommended
@@ -882,7 +882,7 @@ session.save_handler = files
;
; where MODE is the octal representation of the mode. Note that this
; does not overwrite the process's umask.
-session.save_path = "/tmp"
+;session.save_path = "/tmp"
; Whether to use cookies.
session.use_cookies = 1