]> granicus.if.org Git - php/commitdiff
fix mime_magic problems with ZTS
authorAntony Dovgal <tony2001@php.net>
Tue, 18 Oct 2005 12:41:13 +0000 (12:41 +0000)
committerAntony Dovgal <tony2001@php.net>
Tue, 18 Oct 2005 12:41:13 +0000 (12:41 +0000)
ext/mime_magic/mime_magic.c
ext/mime_magic/phpmimemagic.h

index 59644abaa78ee0aec66c4c0672664b8055559087..0ec285b50482e6c745560640642262e898c58adc 100644 (file)
@@ -260,7 +260,9 @@ PHP_INI_END()
  */
 static void php_mime_magic_init_globals(zend_mime_magic_globals *mime_magic_globals)
 {
-       mime_global.magicfile = NULL;
+       memset(mime_magic_globals, 0, sizeof(zend_mime_magic_globals));
+       mime_global.magic = NULL;
+       mime_global.last = NULL;
 }
 /* }}} */
 
@@ -348,7 +350,7 @@ PHP_FUNCTION(mime_content_type)
 
        if (conf->magic == (struct magic *)-1) {
                if(MIME_MAGIC_G(debug))
-                       php_error_docref("http://www.php.net/mime_magic" TSRMLS_CC, E_ERROR, "mime_magic could not be initialized, magic file %s is not available", conf->magicfile);
+                       php_error_docref("http://www.php.net/mime_magic" TSRMLS_CC, E_ERROR, "mime_magic could not be initialized, magic file %s is not available", MIME_MAGIC_G(magicfile));
                RETURN_FALSE;
        } 
 
@@ -391,7 +393,11 @@ static int apprentice(void)
     magic_server_config_rec *conf = &mime_global;
     TSRMLS_FETCH();
 
-    fname = conf->magicfile; /* todo cwd? */
+    if (!MIME_MAGIC_G(magicfile)) {
+        return -1;
+    }
+       
+    fname = MIME_MAGIC_G(magicfile); /* todo cwd? */
     f = fopen(fname, "rb");
     if (f == NULL) {
                conf->magic = (struct magic *)-1;
index 72d29ac6fa68859959d16480c26ea73b021954d8..9849030f924be4dc7b5f06317008d2be072dd1ae 100644 (file)
@@ -343,7 +343,6 @@ typedef struct magic_rsl_s {
 
 /* per-server info */
 typedef struct {
-    char *magicfile;           /* where magic be found */
     struct magic *magic;       /* head of magic config list */
     struct magic *last;
 } magic_server_config_rec;