iliaa           Sun Nov 26 17:02:13 2006 UTC

  Modified files:              (Branch: PHP_5_2)
    /php-src/ext/mime_magic     mime_magic.c 
    /php-src/ext/standard       basic_functions.c 
  Log:
  Fixed bug #39623 (thread safety fixes on *nix for putenv() & mime_magic).
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/mime_magic/mime_magic.c?r1=1.42.2.5.2.1&r2=1.42.2.5.2.2&diff_format=u
Index: php-src/ext/mime_magic/mime_magic.c
diff -u php-src/ext/mime_magic/mime_magic.c:1.42.2.5.2.1 
php-src/ext/mime_magic/mime_magic.c:1.42.2.5.2.2
--- php-src/ext/mime_magic/mime_magic.c:1.42.2.5.2.1    Thu Jun 15 18:33:07 2006
+++ php-src/ext/mime_magic/mime_magic.c Sun Nov 26 17:02:13 2006
@@ -15,7 +15,7 @@
   | Author: Hartmut Holzgraefe  <[EMAIL PROTECTED]>                       |
   +----------------------------------------------------------------------+
 
-  $Id: mime_magic.c,v 1.42.2.5.2.1 2006/06/15 18:33:07 dmitry Exp $ 
+  $Id: mime_magic.c,v 1.42.2.5.2.2 2006/11/26 17:02:13 iliaa Exp $ 
 
   This module contains a lot of stuff taken from Apache mod_mime_magic,
   so the license section is a little bit longer than usual:
@@ -1388,6 +1388,7 @@
     char *token;
     register struct names *p;
     int small_nbytes;
+    char *strtok_buf = NULL;
 
     /* these are easy, do them first */
 
@@ -1420,8 +1421,7 @@
     s = (unsigned char *) memcpy(nbuf, buf, small_nbytes);
     s[small_nbytes] = '\0';
     has_escapes = (memchr(s, '\033', small_nbytes) != NULL);
-    /* XXX: not multithread safe */
-    while ((token = strtok((char *) s, " \t\n\r\f")) != NULL) {
+    while ((token = php_strtok_r((char *) s, " \t\n\r\f", &strtok_buf)) != 
NULL) {
                s = NULL;               /* make strtok() keep on tokin' */
                for (p = names; p < names + NNAMES; p++) {
                        if (STREQ(p->name, token)) {
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/basic_functions.c?r1=1.725.2.31.2.30&r2=1.725.2.31.2.31&diff_format=u
Index: php-src/ext/standard/basic_functions.c
diff -u php-src/ext/standard/basic_functions.c:1.725.2.31.2.30 
php-src/ext/standard/basic_functions.c:1.725.2.31.2.31
--- php-src/ext/standard/basic_functions.c:1.725.2.31.2.30      Fri Nov 10 
11:42:07 2006
+++ php-src/ext/standard/basic_functions.c      Sun Nov 26 17:02:13 2006
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: basic_functions.c,v 1.725.2.31.2.30 2006/11/10 11:42:07 dmitry Exp $ */
+/* $Id: basic_functions.c,v 1.725.2.31.2.31 2006/11/26 17:02:13 iliaa Exp $ */
 
 #include "php.h"
 #include "php_streams.h"
@@ -4398,7 +4398,8 @@
                        /* Check the allowed list */
                        if (BG(sm_allowed_env_vars) && 
*BG(sm_allowed_env_vars)) {
                                char *allowed_env_vars = 
estrdup(BG(sm_allowed_env_vars));
-                               char *allowed_prefix = strtok(allowed_env_vars, 
", ");
+                               char *strtok_buf = NULL;
+                               char *allowed_prefix = 
php_strtok_r(allowed_env_vars, ", ", &strtok_buf);
                                zend_bool allowed = 0;
 
                                while (allowed_prefix) {
@@ -4406,7 +4407,7 @@
                                                allowed = 1;
                                                break;
                                        }
-                                       allowed_prefix = strtok(NULL, ", ");
+                                       allowed_prefix = php_strtok_r(NULL, ", 
", &strtok_buf);
                                }
                                efree(allowed_env_vars);
                                if (!allowed) {

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to