iliaa           Mon Jul 21 21:32:01 2003 EDT

  Modified files:              
    /php-src/main       fopen_wrappers.c 
  Log:
  Make php_check_safe_mode_include_dir check independent of unrelated 
  open_basedir directive and make it properly handle undefined/empty
  safe_mode_include_dir directive when safe_mode is enabled.
  
  
Index: php-src/main/fopen_wrappers.c
diff -u php-src/main/fopen_wrappers.c:1.164 php-src/main/fopen_wrappers.c:1.165
--- php-src/main/fopen_wrappers.c:1.164 Tue Jun 24 10:36:01 2003
+++ php-src/main/fopen_wrappers.c       Mon Jul 21 21:32:01 2003
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: fopen_wrappers.c,v 1.164 2003/06/24 14:36:01 iliaa Exp $ */
+/* $Id: fopen_wrappers.c,v 1.165 2003/07/22 01:32:01 iliaa Exp $ */
 
 /* {{{ includes
  */
@@ -213,45 +213,44 @@
  */
 PHPAPI int php_check_safe_mode_include_dir(char *path TSRMLS_DC)
 {
-       /* Only check when safe_mode or open_basedir is on and safe_mode_include_dir 
is available */
-       if (((PG(open_basedir) && *PG(open_basedir)) || PG(safe_mode)) && 
-                       PG(safe_mode_include_dir) && *PG(safe_mode_include_dir))
-       {
-               char *pathbuf;
-               char *ptr;
-               char *end;
-               char resolved_name[MAXPATHLEN];
-
-               /* Resolve the real path into resolved_name */
-               if (expand_filepath(path, resolved_name TSRMLS_CC) == NULL)
-                       return -1;
-
-               pathbuf = estrdup(PG(safe_mode_include_dir));
+       if (PG(safe_mode)) {
+               if (PG(safe_mode_include_dir) && *PG(safe_mode_include_dir)) {
+                       char *pathbuf;
+                       char *ptr;
+                       char *end;
+                       char resolved_name[MAXPATHLEN];
+
+                       /* Resolve the real path into resolved_name */
+                       if (expand_filepath(path, resolved_name TSRMLS_CC) == NULL)
+                               return -1;
+
+                       pathbuf = estrdup(PG(safe_mode_include_dir));
+
+                       ptr = pathbuf;
+
+                       while (ptr && *ptr) {
+                               end = strchr(ptr, DEFAULT_DIR_SEPARATOR);
+                               if (end != NULL) {
+                                       *end = '\0';
+                                       end++;
+                               }
 
-               ptr = pathbuf;
-
-               while (ptr && *ptr) {
-                       end = strchr(ptr, DEFAULT_DIR_SEPARATOR);
-                       if (end != NULL) {
-                               *end = '\0';
-                               end++;
-                       }
-
-                       /* Check the path */
+                               /* Check the path */
 #ifdef PHP_WIN32
-                       if (strncasecmp(ptr, resolved_name, strlen(ptr)) == 0)
+                               if (strncasecmp(ptr, resolved_name, strlen(ptr)) == 0)
 #else
-                       if (strncmp(ptr, resolved_name, strlen(ptr)) == 0)
+                               if (strncmp(ptr, resolved_name, strlen(ptr)) == 0)
 #endif
-                       {
-                               /* File is in the right directory */
-                               efree(pathbuf);
-                               return 0;
-                       }
+                               {
+                                       /* File is in the right directory */
+                                       efree(pathbuf);
+                                       return 0;
+                               }
 
-                       ptr = end;
+                               ptr = end;
+                       }
+                       efree(pathbuf);
                }
-               efree(pathbuf);
                return -1;
        }
 



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to