Diff for /embedaddon/php/main/php_ini.c between versions 1.1 and 1.1.1.4

version 1.1, 2012/02/21 23:48:05 version 1.1.1.4, 2013/10/14 08:02:43
Line 2 Line 2
    +----------------------------------------------------------------------+     +----------------------------------------------------------------------+
    | PHP Version 5                                                        |     | PHP Version 5                                                        |
    +----------------------------------------------------------------------+     +----------------------------------------------------------------------+
   | Copyright (c) 1997-2012 The PHP Group                                |   | Copyright (c) 1997-2013 The PHP Group                                |
    +----------------------------------------------------------------------+     +----------------------------------------------------------------------+
    | This source file is subject to version 3.01 of the PHP license,      |     | This source file is subject to version 3.01 of the PHP license,      |
    | that is bundled with this package in the file LICENSE, and is        |     | that is bundled with this package in the file LICENSE, and is        |
Line 290  static void php_ini_parser_cb(zval *arg1, zval *arg2,  Line 290  static void php_ini_parser_cb(zval *arg1, zval *arg2, 
                                         is_special_section = 1;                                          is_special_section = 1;
                                         has_per_dir_config = 1;                                          has_per_dir_config = 1;
   
                                        /* make the path lowercase on Windows, for case insensitivty. Does nothign for other platforms */                                        /* make the path lowercase on Windows, for case insensitivity. Does nothing for other platforms */
                                         TRANSLATE_SLASHES_LOWER(key);                                          TRANSLATE_SLASHES_LOWER(key);
   
                                 /* HOST sections */                                  /* HOST sections */
Line 368  int php_init_config(TSRMLS_D) Line 368  int php_init_config(TSRMLS_D)
         char *php_ini_file_name = NULL;          char *php_ini_file_name = NULL;
         char *php_ini_search_path = NULL;          char *php_ini_search_path = NULL;
         int php_ini_scanned_path_len;          int php_ini_scanned_path_len;
         int safe_mode_state;  
         char *open_basedir;          char *open_basedir;
         int free_ini_search_path = 0;          int free_ini_search_path = 0;
         zend_file_handle fh;          zend_file_handle fh;
Line 384  int php_init_config(TSRMLS_D) Line 383  int php_init_config(TSRMLS_D)
         zend_llist_init(&extension_lists.engine, sizeof(char *), (llist_dtor_func_t) free_estring, 1);          zend_llist_init(&extension_lists.engine, sizeof(char *), (llist_dtor_func_t) free_estring, 1);
         zend_llist_init(&extension_lists.functions, sizeof(char *), (llist_dtor_func_t) free_estring, 1);          zend_llist_init(&extension_lists.functions, sizeof(char *), (llist_dtor_func_t) free_estring, 1);
   
         safe_mode_state = PG(safe_mode);  
         open_basedir = PG(open_basedir);          open_basedir = PG(open_basedir);
   
         if (sapi_module.php_ini_path_override) {          if (sapi_module.php_ini_path_override) {
Line 395  int php_init_config(TSRMLS_D) Line 393  int php_init_config(TSRMLS_D)
                 int search_path_size;                  int search_path_size;
                 char *default_location;                  char *default_location;
                 char *env_location;                  char *env_location;
                 char *binary_location;  
                 static const char paths_separator[] = { ZEND_PATHS_SEPARATOR, 0 };                  static const char paths_separator[] = { ZEND_PATHS_SEPARATOR, 0 };
 #ifdef PHP_WIN32  #ifdef PHP_WIN32
                 char *reg_location;                  char *reg_location;
Line 423  int php_init_config(TSRMLS_D) Line 420  int php_init_config(TSRMLS_D)
                                         env_location = "";                                          env_location = "";
                                 } else {                                  } else {
                                         size = GetEnvironmentVariableA("PHPRC", phprc_path, size);                                          size = GetEnvironmentVariableA("PHPRC", phprc_path, size);
                                        env_location = phprc_path;                                        if (size == 0) {
                                                 env_location = "";
                                         } else {
                                                 env_location = phprc_path;
                                         }
                                 }                                  }
                         }                          }
                 }                  }
Line 463  int php_init_config(TSRMLS_D) Line 464  int php_init_config(TSRMLS_D)
 #endif  #endif
   
                 /* Add cwd (not with CLI) */                  /* Add cwd (not with CLI) */
                if (strcmp(sapi_module.name, "cli") != 0) {                if (!sapi_module.php_ini_ignore_cwd) {
                         if (*php_ini_search_path) {                          if (*php_ini_search_path) {
                                 strlcat(php_ini_search_path, paths_separator, search_path_size);                                  strlcat(php_ini_search_path, paths_separator, search_path_size);
                         }                          }
                         strlcat(php_ini_search_path, ".", search_path_size);                          strlcat(php_ini_search_path, ".", search_path_size);
                 }                  }
   
                /* Add binary directory */                if (PG(php_binary)) {
#ifdef PHP_WIN32                        char *separator_location, *binary_location;
                binary_location = (char *) emalloc(MAXPATHLEN); 
                if (GetModuleFileName(0, binary_location, MAXPATHLEN) == 0) { 
                        efree(binary_location); 
                        binary_location = NULL; 
                } 
#else 
                if (sapi_module.executable_location) { 
                        binary_location = (char *)emalloc(MAXPATHLEN); 
                        if (!strchr(sapi_module.executable_location, '/')) { 
                                char *envpath, *path; 
                                int found = 0; 
   
                                if ((envpath = getenv("PATH")) != NULL) {                        binary_location = estrdup(PG(php_binary));
                                        char *search_dir, search_path[MAXPATHLEN];                        separator_location = strrchr(binary_location, DEFAULT_SLASH);
                                        char *last = NULL; 
   
                                         path = estrdup(envpath);  
                                         search_dir = php_strtok_r(path, ":", &last);  
   
                                         while (search_dir) {  
                                                 snprintf(search_path, MAXPATHLEN, "%s/%s", search_dir, sapi_module.executable_location);  
                                                 if (VCWD_REALPATH(search_path, binary_location) && !VCWD_ACCESS(binary_location, X_OK)) {  
                                                         found = 1;  
                                                         break;  
                                                 }  
                                                 search_dir = php_strtok_r(NULL, ":", &last);  
                                         }  
                                         efree(path);  
                                 }  
                                 if (!found) {  
                                         efree(binary_location);  
                                         binary_location = NULL;  
                                 }  
                         } else if (!VCWD_REALPATH(sapi_module.executable_location, binary_location) || VCWD_ACCESS(binary_location, X_OK)) {  
                                 efree(binary_location);  
                                 binary_location = NULL;  
                         }  
                 } else {  
                         binary_location = NULL;  
                 }  
 #endif  
                 if (binary_location) {  
                         char *separator_location = strrchr(binary_location, DEFAULT_SLASH);  
   
                         if (separator_location && separator_location != binary_location) {                          if (separator_location && separator_location != binary_location) {
                                 *(separator_location) = 0;                                  *(separator_location) = 0;
                         }                          }
Line 557  int php_init_config(TSRMLS_D) Line 518  int php_init_config(TSRMLS_D)
 #endif  #endif
         }          }
   
         PG(safe_mode) = 0;  
         PG(open_basedir) = NULL;          PG(open_basedir) = NULL;
   
         /*          /*
Line 610  int php_init_config(TSRMLS_D) Line 570  int php_init_config(TSRMLS_D)
                 efree(php_ini_search_path);                  efree(php_ini_search_path);
         }          }
   
         PG(safe_mode) = safe_mode_state;  
         PG(open_basedir) = open_basedir;          PG(open_basedir) = open_basedir;
   
         if (fh.handle.fp) {          if (fh.handle.fp) {
Line 826  PHPAPI void php_ini_activate_per_dir_config(char *path Line 785  PHPAPI void php_ini_activate_per_dir_config(char *path
         char path_bak[MAXPATHLEN];          char path_bak[MAXPATHLEN];
 #endif  #endif
   
   #if PHP_WIN32
           /* MAX_PATH is \0-terminated, path_len == MAXPATHLEN would overrun path_bak */
           if (path_len >= MAXPATHLEN) {
   #else
         if (path_len > MAXPATHLEN) {          if (path_len > MAXPATHLEN) {
   #endif
                 return;                  return;
         }          }
   

Removed from v.1.1  
changed lines
  Added in v.1.1.1.4


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>