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

index 8bec0be88c5e388e2f31babcccbb511d99caaa8d..54bc33e6773f97e082e34aaa651b0f4734cd49e3 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;