summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZeev Suraski <zeev@php.net>1999-05-13 15:54:49 +0000
committerZeev Suraski <zeev@php.net>1999-05-13 15:54:49 +0000
commit5eaed486e1c61ec33c83bb8ce266f4d9fd59d289 (patch)
tree656892887e87e40e55100b31b6a5100eaeb0b40f
parent0b873a78999bc6a78d5652eae541a08f75efe3d6 (diff)
downloadphp-git-5eaed486e1c61ec33c83bb8ce266f4d9fd59d289.tar.gz
* HTTP-auth bugfix
* Patch the regex thread safe code to compile in thread safe mode
-rw-r--r--ext/ereg/ereg.c6
-rw-r--r--ext/ereg/php_ereg.h22
-rw-r--r--ext/standard/reg.c6
-rw-r--r--ext/standard/reg.h22
-rw-r--r--main/main.c2
5 files changed, 31 insertions, 27 deletions
diff --git a/ext/ereg/ereg.c b/ext/ereg/ereg.c
index b492865e6b..e7550db08d 100644
--- a/ext/ereg/ereg.c
+++ b/ext/ereg/ereg.c
@@ -75,10 +75,10 @@ typedef struct {
static int _php_regcomp(regex_t *preg, const char *pattern, int cflags)
{
- REGSLS_FETCH
int r = 0;
int patlen = strlen(pattern);
reg_cache *rc = NULL;
+ REGLS_FETCH();
if(_php3_hash_find(&REG(ht_rc), (char *) pattern, patlen, (void **) &rc) == FAILURE ||
rc->cflags != cflags) {
@@ -114,7 +114,7 @@ static void php_reg_init_globals(php_reg_globals *reg_globals)
static int php_minit_regex(INIT_FUNC_ARGS)
{
#ifdef ZTS
- reg_globals_id = tsrm_allocate_id(sizeof(php_reg_globals), php_reg_init_globals, NULL);
+ reg_globals_id = ts_allocate_id(sizeof(php_reg_globals), php_reg_init_globals, NULL);
#else
php_reg_init_globals(&reg_globals);
#endif
@@ -124,6 +124,8 @@ static int php_minit_regex(INIT_FUNC_ARGS)
static int php_mshutdown_regex(SHUTDOWN_FUNC_ARGS)
{
+ REGLS_FETCH();
+
_php3_hash_destroy(&REG(ht_rc));
return SUCCESS;
}
diff --git a/ext/ereg/php_ereg.h b/ext/ereg/php_ereg.h
index 011484bc4f..4b7f37466d 100644
--- a/ext/ereg/php_ereg.h
+++ b/ext/ereg/php_ereg.h
@@ -43,7 +43,7 @@ PHP_FUNCTION(eregi);
PHP_FUNCTION(eregireplace);
PHP_FUNCTION(eregreplace);
PHP_FUNCTION(split);
-PHP_FUNCTION(sql_regcase);
+PHPAPI PHP_FUNCTION(sql_regcase);
typedef struct {
HashTable ht_rc;
@@ -51,19 +51,19 @@ typedef struct {
#ifdef ZTS
-#define REGSLS_D php_reg_globals *reg_globals
-#define REGSLS_DC , REGSLS_D
-#define REGSLS_C reg_globals
-#define REGSLS_CC , REGSLS_C
+#define REGLS_D php_reg_globals *reg_globals
+#define REGLS_DC , REGLS_D
+#define REGLS_C reg_globals
+#define REGLS_CC , REGLS_C
#define REG(v) (reg_globals->v)
-#define REGSLS_FETCH php_reg_globals *reg_globals = ts_resource(reg_globals_id);
+#define REGLS_FETCH() php_reg_globals *reg_globals = ts_resource(reg_globals_id)
#else
-#define REGSLS_D
-#define REGSLS_DC
-#define REGSLS_C
-#define REGSLS_CC
+#define REGLS_D
+#define REGLS_DC
+#define REGLS_C
+#define REGLS_CC
#define REG(v) (reg_globals.v)
-#define REGSLS_FETCH
+#define REGLS_FETCH()
#endif
#define phpext_regex_ptr regexp_module_ptr
diff --git a/ext/standard/reg.c b/ext/standard/reg.c
index b492865e6b..e7550db08d 100644
--- a/ext/standard/reg.c
+++ b/ext/standard/reg.c
@@ -75,10 +75,10 @@ typedef struct {
static int _php_regcomp(regex_t *preg, const char *pattern, int cflags)
{
- REGSLS_FETCH
int r = 0;
int patlen = strlen(pattern);
reg_cache *rc = NULL;
+ REGLS_FETCH();
if(_php3_hash_find(&REG(ht_rc), (char *) pattern, patlen, (void **) &rc) == FAILURE ||
rc->cflags != cflags) {
@@ -114,7 +114,7 @@ static void php_reg_init_globals(php_reg_globals *reg_globals)
static int php_minit_regex(INIT_FUNC_ARGS)
{
#ifdef ZTS
- reg_globals_id = tsrm_allocate_id(sizeof(php_reg_globals), php_reg_init_globals, NULL);
+ reg_globals_id = ts_allocate_id(sizeof(php_reg_globals), php_reg_init_globals, NULL);
#else
php_reg_init_globals(&reg_globals);
#endif
@@ -124,6 +124,8 @@ static int php_minit_regex(INIT_FUNC_ARGS)
static int php_mshutdown_regex(SHUTDOWN_FUNC_ARGS)
{
+ REGLS_FETCH();
+
_php3_hash_destroy(&REG(ht_rc));
return SUCCESS;
}
diff --git a/ext/standard/reg.h b/ext/standard/reg.h
index 011484bc4f..4b7f37466d 100644
--- a/ext/standard/reg.h
+++ b/ext/standard/reg.h
@@ -43,7 +43,7 @@ PHP_FUNCTION(eregi);
PHP_FUNCTION(eregireplace);
PHP_FUNCTION(eregreplace);
PHP_FUNCTION(split);
-PHP_FUNCTION(sql_regcase);
+PHPAPI PHP_FUNCTION(sql_regcase);
typedef struct {
HashTable ht_rc;
@@ -51,19 +51,19 @@ typedef struct {
#ifdef ZTS
-#define REGSLS_D php_reg_globals *reg_globals
-#define REGSLS_DC , REGSLS_D
-#define REGSLS_C reg_globals
-#define REGSLS_CC , REGSLS_C
+#define REGLS_D php_reg_globals *reg_globals
+#define REGLS_DC , REGLS_D
+#define REGLS_C reg_globals
+#define REGLS_CC , REGLS_C
#define REG(v) (reg_globals->v)
-#define REGSLS_FETCH php_reg_globals *reg_globals = ts_resource(reg_globals_id);
+#define REGLS_FETCH() php_reg_globals *reg_globals = ts_resource(reg_globals_id)
#else
-#define REGSLS_D
-#define REGSLS_DC
-#define REGSLS_C
-#define REGSLS_CC
+#define REGLS_D
+#define REGLS_DC
+#define REGLS_C
+#define REGLS_CC
#define REG(v) (reg_globals.v)
-#define REGSLS_FETCH
+#define REGLS_FETCH()
#endif
#define phpext_regex_ptr regexp_module_ptr
diff --git a/main/main.c b/main/main.c
index 0b9d086fa7..ebe1953877 100644
--- a/main/main.c
+++ b/main/main.c
@@ -639,7 +639,7 @@ int php_request_startup(CLS_D ELS_DC PLS_DC SLS_DC)
zend_hash_update(&EG(symbol_table), "PHP_AUTH_USER", sizeof("PHP_AUTH_USER"), &auth_user, sizeof(zval *), NULL);
}
- if (SG(request_info).auth_user) {
+ if (SG(request_info).auth_password) {
zval *auth_password;
MAKE_STD_ZVAL(auth_password);