File php-5.1.2-phpbug-36016.patch of Package php

--- main/main.c
+++ main/main.c
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: main.c,v 1.640.2.13 2006/01/01 12:50:17 sniper Exp $ */
+/* $Id: main.c,v 1.640.2.14 2006/01/16 09:09:37 dmitry Exp $ */
 
 /* {{{ includes
  */
@@ -322,10 +322,8 @@
 
 	STD_PHP_INI_BOOLEAN("allow_url_fopen",		"1",		PHP_INI_SYSTEM,		OnUpdateBool,			allow_url_fopen,			php_core_globals,	core_globals)
 	STD_PHP_INI_BOOLEAN("always_populate_raw_post_data",		"0",		PHP_INI_SYSTEM|PHP_INI_PERDIR,		OnUpdateBool,			always_populate_raw_post_data,			php_core_globals,	core_globals)
-#ifdef REALPATH_CACHE
 	STD_PHP_INI_ENTRY("realpath_cache_size", "16K", PHP_INI_SYSTEM, OnUpdateLong, realpath_cache_size_limit, virtual_cwd_globals, cwd_globals)
 	STD_PHP_INI_ENTRY("realpath_cache_ttl", "120", PHP_INI_SYSTEM, OnUpdateLong, realpath_cache_ttl, virtual_cwd_globals, cwd_globals)
-#endif
 PHP_INI_END()
 /* }}} */
 
--- TSRM/tsrm_virtual_cwd.c
+++ TSRM/tsrm_virtual_cwd.c
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: tsrm_virtual_cwd.c,v 1.74.2.4 2006/01/01 12:50:00 sniper Exp $ */
+/* $Id: tsrm_virtual_cwd.c,v 1.74.2.6 2006/01/16 09:12:22 dmitry Exp $ */
 
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -163,18 +163,15 @@
 static void cwd_globals_ctor(virtual_cwd_globals *cwd_globals TSRMLS_DC)
 {
 	CWD_STATE_COPY(&cwd_globals->cwd, &main_cwd_state);
-#ifdef REALPATH_CACHE
 	cwd_globals->realpath_cache_size = 0;
 	cwd_globals->realpath_cache_size_limit = REALPATH_CACHE_SIZE;
 	cwd_globals->realpath_cache_ttl = REALPATH_CACHE_TTL;
 	memset(cwd_globals->realpath_cache, 0, sizeof(cwd_globals->realpath_cache));
-#endif
 }
 
 static void cwd_globals_dtor(virtual_cwd_globals *cwd_globals TSRMLS_DC)
 {
 	CWD_STATE_FREE(&cwd_globals->cwd);
-#ifdef REALPATH_CACHE
 	{
 		int i;
 
@@ -187,7 +184,6 @@
 			}
 		}
 	}
-#endif
 }
 
 static char *tsrm_strndup(const char *s, size_t length)
@@ -308,7 +304,6 @@
 	return buf;
 }
 
-#ifdef REALPATH_CACHE
 static inline unsigned long realpath_cache_key(const char *path, int path_len)
 {
   register unsigned long h;
@@ -352,19 +347,18 @@
 	while (*bucket != NULL) {
 		if (CWDG(realpath_cache_ttl) && (*bucket)->expires < t) {
 			realpath_cache_bucket *r = *bucket;
-		  *bucket = (*bucket)->next;
-		  CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1 + r->realpath_len + 1;
-		  free(r);
+			*bucket = (*bucket)->next;
+			CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1 + r->realpath_len + 1;
+			free(r);
 		} else if (key == (*bucket)->key && path_len == (*bucket)->path_len &&
 		           memcmp(path, (*bucket)->path, path_len) == 0) {
 			return *bucket;
 		} else {
-			*bucket = (*bucket)->next;
+			bucket = &(*bucket)->next;
 		}
 	}
 	return NULL;
 }
-#endif
 
 
 /* Resolve path relatively to state and put the real path into state */
@@ -385,20 +379,17 @@
 #else
 	char *new_path;
 #endif
-#ifdef REALPATH_CACHE
 	char orig_path[MAXPATHLEN];
 	int orig_path_len;
 	realpath_cache_bucket *bucket;
 	time_t t;
 	TSRMLS_FETCH();
-#endif
 
 	if (path_length == 0) 
 		return (0);
 	if (path_length >= MAXPATHLEN)
 		return (1);
 
-#ifdef REALPATH_CACHE
 	if (use_realpath && CWDG(realpath_cache_size_limit)) {
 		if (IS_ABSOLUTE_PATH(path, path_length) || (state->cwd_length < 1)) {
 			memcpy(orig_path, path, path_length+1);
@@ -430,7 +421,6 @@
 			}
 		}
 	}
-#endif
 #if !defined(TSRM_WIN32) && !defined(NETWARE)
 	/* cwd_length can be 0 when getcwd() fails.
 	 * This can happen under solaris when a dir does not have read permissions
@@ -609,11 +599,9 @@
 #endif
 	free(free_path);
 
-#ifdef REALPATH_CACHE
 	if (use_realpath && CWDG(realpath_cache_size_limit)) {
 		realpath_cache_add(orig_path, orig_path_len, state->cwd, state->cwd_length, t TSRMLS_CC);
 	}
-#endif
 
 	if (verify_path && verify_path(state)) {
 		CWD_STATE_FREE(state);
--- TSRM/tsrm_virtual_cwd.h
+++ TSRM/tsrm_virtual_cwd.h
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: tsrm_virtual_cwd.h,v 1.48.2.1 2006/01/01 12:50:00 sniper Exp $ */
+/* $Id: tsrm_virtual_cwd.h,v 1.48.2.2 2006/01/16 09:09:37 dmitry Exp $ */
 
 #ifndef VIRTUAL_CWD_H
 #define VIRTUAL_CWD_H
@@ -195,11 +195,9 @@
 
 CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path, int use_realpath);
 
-#define REALPATH_CACHE
 #define REALPATH_CACHE_TTL  (2*60) /* 2 minutes */
 #define REALPATH_CACHE_SIZE 0      /* disabled while php.ini isn't loaded */
 
-#ifdef REALPATH_CACHE
 typedef struct _realpath_cache_bucket {
 	unsigned long                  key;
 	char                          *path;
@@ -209,16 +207,13 @@
 	time_t                         expires;
 	struct _realpath_cache_bucket *next;	
 } realpath_cache_bucket;
-#endif
 
 typedef struct _virtual_cwd_globals {
 	cwd_state cwd;
-#ifdef REALPATH_CACHE
 	long                   realpath_cache_size;
 	long                   realpath_cache_size_limit;
 	long                   realpath_cache_ttl;
 	realpath_cache_bucket *realpath_cache[1024];
-#endif
 } virtual_cwd_globals;
 
 #ifdef ZTS
openSUSE Build Service is sponsored by