]> granicus.if.org Git - php/commitdiff
If a SAPI module does not pass an absolute path as primary_file to
authorSascha Schumann <sas@php.net>
Sun, 27 Aug 2000 19:38:18 +0000 (19:38 +0000)
committerSascha Schumann <sas@php.net>
Sun, 27 Aug 2000 19:38:18 +0000 (19:38 +0000)
php_execute_script(), we will now change the filename to point to
the absolute path.

main/main.c

index 27330cffb69aad2e6cc8551b77c0cad0c5095a82..8c50ca849c657a2e29ad5dd0410220072dae9a36 100644 (file)
@@ -1105,9 +1105,11 @@ PHPAPI void php_execute_script(zend_file_handle *primary_file CLS_DC ELS_DC PLS_
 {
        zend_file_handle *prepend_file_p, *append_file_p;
        zend_file_handle prepend_file, append_file;
-       char old_cwd[4096] = "";
+       char old_cwd[4096];
+       char new_path[4096] = "";
        SLS_FETCH();
 
+       old_cwd[0] = new_path[0] = '\0';
        php_hash_environment(ELS_C SLS_CC PLS_CC);
 
        zend_activate_modules();
@@ -1147,6 +1149,13 @@ PHPAPI void php_execute_script(zend_file_handle *primary_file CLS_DC ELS_DC PLS_
        if (primary_file->type == ZEND_HANDLE_FILENAME 
                        && primary_file->filename) {
                V_GETCWD(old_cwd, sizeof(old_cwd)-1);
+               
+               if (!IS_ABSOLUTE_PATH(primary_file->filename, strlen(primary_file->filename))) {
+                       snprintf(new_path, sizeof(new_path), "%s%c%s", old_cwd, PHP_DIR_SEPARATOR, primary_file->filename);
+                       new_path[sizeof(new_path)-1] = '\0';
+                       primary_file->filename = new_path;
+               }
+               
                V_CHDIR_FILE(primary_file->filename);
        }