]> granicus.if.org Git - php/commitdiff
Fix a bug in extension_dir, where PG(extension_dir) is not yet initialized by the...
authorZeev Suraski <zeev@php.net>
Mon, 12 Jun 2000 21:01:03 +0000 (21:01 +0000)
committerZeev Suraski <zeev@php.net>
Mon, 12 Jun 2000 21:01:03 +0000 (21:01 +0000)
ext/standard/dl.c

index 0da5875d9e15c499014e8edee8d8de86c4fb624a..bf3c1af0079ba3cd0b2c6f5c20c42e0f02a36c06 100644 (file)
@@ -88,24 +88,35 @@ void php_dl(pval *file, int type, pval *return_value)
        zend_module_entry *module_entry,*tmp;
        zend_module_entry *(*get_module)(void);
        int error_type;
+       char *extension_dir;
        PLS_FETCH();
        ELS_FETCH();
 
+
+       if (type==MODULE_PERSISTENT) {
+               /* Use the configuration hash directly */
+               if (cfg_get_string("extension_dir", &extension_dir)==FAILURE) {
+                       extension_dir = NULL;
+               }
+       } else {
+               extension_dir = PG(extension_dir);
+       }
+
        if (type==MODULE_TEMPORARY) {
                error_type = E_WARNING;
        } else {
                error_type = E_CORE_WARNING;
        }
 
-       if (PG(extension_dir) && PG(extension_dir)[0]){
-               int extension_dir_len = strlen(PG(extension_dir));
+       if (extension_dir && extension_dir[0]){
+               int extension_dir_len = strlen(extension_dir);
 
                libpath = emalloc(extension_dir_len+file->value.str.len+2);
 
-               if (IS_SLASH(PG(extension_dir)[extension_dir_len-1])) {
-                       sprintf(libpath,"%s%s", PG(extension_dir), file->value.str.val); /* SAFE */
+               if (IS_SLASH(extension_dir[extension_dir_len-1])) {
+                       sprintf(libpath,"%s%s", extension_dir, file->value.str.val); /* SAFE */
                } else {
-                       sprintf(libpath,"%s/%s", PG(extension_dir), file->value.str.val); /* SAFE */
+                       sprintf(libpath,"%s/%s", extension_dir, file->value.str.val); /* SAFE */
                }
        } else {
                libpath = estrndup(file->value.str.val, file->value.str.len);