tony2001                Mon Jan 15 17:06:52 2007 UTC

  Modified files:              
    /php-src/ext/standard       user_filters.c 
    /php-src/main/streams       streams.c transports.c userspace.c 
  Log:
  add trailing '\0' to stream hashes
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/user_filters.c?r1=1.42&r2=1.43&diff_format=u
Index: php-src/ext/standard/user_filters.c
diff -u php-src/ext/standard/user_filters.c:1.42 
php-src/ext/standard/user_filters.c:1.43
--- php-src/ext/standard/user_filters.c:1.42    Sun Jan  7 06:29:40 2007
+++ php-src/ext/standard/user_filters.c Mon Jan 15 17:06:52 2007
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: user_filters.c,v 1.42 2007/01/07 06:29:40 pollita Exp $ */
+/* $Id: user_filters.c,v 1.43 2007/01/15 17:06:52 tony2001 Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -270,7 +270,7 @@
 
        /* determine the classname/class entry */
        if (FAILURE == zend_hash_find(BG(user_filter_map), (char*)filtername,
-                               strlen(filtername), (void**)&fdat)) {
+                               strlen(filtername) + 1, (void**)&fdat)) {
                char *period;
 
                /* Userspace Filters using ambiguous wildcards could cause 
problems.
@@ -287,7 +287,7 @@
                        while (period) {
                                *period = '\0';
                                strcat(wildcard, ".*");
-                               if (SUCCESS == 
zend_hash_find(BG(user_filter_map), wildcard, strlen(wildcard), (void**)&fdat)) 
{
+                               if (SUCCESS == 
zend_hash_find(BG(user_filter_map), wildcard, strlen(wildcard) + 1, 
(void**)&fdat)) {
                                        period = NULL;
                                } else {
                                        *period = '\0';
@@ -617,7 +617,7 @@
        fdat->classname = ezstrndup(classname_type, classname, classname_len);
        fdat->classname_len = classname_len;
 
-       if (zend_hash_add(BG(user_filter_map), filtername, filtername_len, 
(void*)fdat,
+       if (zend_hash_add(BG(user_filter_map), filtername, filtername_len + 1, 
(void*)fdat,
                                sizeof(*fdat) + classname_len, NULL) == SUCCESS 
&&
                        php_stream_filter_register_factory_volatile(filtername, 
&user_filter_factory TSRMLS_CC) == SUCCESS) {
                RETVAL_TRUE;
http://cvs.php.net/viewvc.cgi/php-src/main/streams/streams.c?r1=1.143&r2=1.144&diff_format=u
Index: php-src/main/streams/streams.c
diff -u php-src/main/streams/streams.c:1.143 
php-src/main/streams/streams.c:1.144
--- php-src/main/streams/streams.c:1.143        Wed Jan 10 22:43:17 2007
+++ php-src/main/streams/streams.c      Mon Jan 15 17:06:52 2007
@@ -19,7 +19,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: streams.c,v 1.143 2007/01/10 22:43:17 pollita Exp $ */
+/* $Id: streams.c,v 1.144 2007/01/15 17:06:52 tony2001 Exp $ */
 
 #define _GNU_SOURCE
 #include "php.h"
@@ -1997,12 +1997,12 @@
                return FAILURE;
        }
 
-       return zend_hash_add(&url_stream_wrappers_hash, protocol, protocol_len, 
&wrapper, sizeof(wrapper), NULL);
+       return zend_hash_add(&url_stream_wrappers_hash, protocol, protocol_len 
+ 1, &wrapper, sizeof(wrapper), NULL);
 }
 
 PHPAPI int php_unregister_url_stream_wrapper(char *protocol TSRMLS_DC)
 {
-       return zend_hash_del(&url_stream_wrappers_hash, protocol, 
strlen(protocol));
+       return zend_hash_del(&url_stream_wrappers_hash, protocol, 
strlen(protocol) + 1);
 }
 
 static void clone_wrapper_hash(TSRMLS_D)
@@ -2027,7 +2027,7 @@
                clone_wrapper_hash(TSRMLS_C);
        }
 
-       return zend_hash_add(FG(stream_wrappers), protocol, protocol_len, 
&wrapper, sizeof(wrapper), NULL);
+       return zend_hash_add(FG(stream_wrappers), protocol, protocol_len + 1, 
&wrapper, sizeof(wrapper), NULL);
 }
 
 PHPAPI int php_unregister_url_stream_wrapper_volatile(char *protocol TSRMLS_DC)
@@ -2036,7 +2036,7 @@
                clone_wrapper_hash(TSRMLS_C);
        }
 
-       return zend_hash_del(FG(stream_wrappers), protocol, strlen(protocol));
+       return zend_hash_del(FG(stream_wrappers), protocol, strlen(protocol) + 
1);
 }
 /* }}} */
 
@@ -2070,10 +2070,10 @@
        }
 
        if (protocol)   {
-               if (FAILURE == zend_hash_find(wrapper_hash, (char*)protocol, n, 
(void**)&wrapperpp)) {
-                       char *tmp = estrndup(protocol, n);
+               char *tmp = estrndup(protocol, n);
+               if (FAILURE == zend_hash_find(wrapper_hash, (char*)tmp, n + 1, 
(void**)&wrapperpp)) {
                        php_strtolower(tmp, n);
-                       if (FAILURE == zend_hash_find(wrapper_hash, (char*)tmp, 
n, (void**)&wrapperpp)) {
+                       if (FAILURE == zend_hash_find(wrapper_hash, (char*)tmp, 
n + 1, (void**)&wrapperpp)) {
                                char wrapper_name[32];
 
                                if (n >= sizeof(wrapper_name)) {
@@ -2086,8 +2086,8 @@
                                wrapperpp = NULL;
                                protocol = NULL;
                        }
-                       efree(tmp);
                }
+               efree(tmp);
        }
        /* TODO: curl based streams probably support file:// properly */
        if (!protocol || !strncasecmp(protocol, "file", n))     {
@@ -2136,7 +2136,7 @@
                        }
                        
                        /* Check again, the original check might have not known 
the protocol name */
-                       if (zend_hash_find(wrapper_hash, "file", 
sizeof("file")-1, (void**)&wrapperpp) == SUCCESS) {
+                       if (zend_hash_find(wrapper_hash, "file", 
sizeof("file"), (void**)&wrapperpp) == SUCCESS) {
                                return *wrapperpp;
                        }
 
http://cvs.php.net/viewvc.cgi/php-src/main/streams/transports.c?r1=1.19&r2=1.20&diff_format=u
Index: php-src/main/streams/transports.c
diff -u php-src/main/streams/transports.c:1.19 
php-src/main/streams/transports.c:1.20
--- php-src/main/streams/transports.c:1.19      Mon Jan  1 09:29:36 2007
+++ php-src/main/streams/transports.c   Mon Jan 15 17:06:52 2007
@@ -16,7 +16,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: transports.c,v 1.19 2007/01/01 09:29:36 sebastian Exp $ */
+/* $Id: transports.c,v 1.20 2007/01/15 17:06:52 tony2001 Exp $ */
 
 #include "php.h"
 #include "php_streams_int.h"
@@ -31,12 +31,12 @@
 
 PHPAPI int php_stream_xport_register(char *protocol, 
php_stream_transport_factory factory TSRMLS_DC)
 {
-       return zend_hash_update(&xport_hash, protocol, strlen(protocol), 
&factory, sizeof(factory), NULL);
+       return zend_hash_update(&xport_hash, protocol, strlen(protocol) + 1, 
&factory, sizeof(factory), NULL);
 }
 
 PHPAPI int php_stream_xport_unregister(char *protocol TSRMLS_DC)
 {
-       return zend_hash_del(&xport_hash, protocol, strlen(protocol));
+       return zend_hash_del(&xport_hash, protocol, strlen(protocol) + 1);
 }
 
 #define ERR_REPORT(out_err, fmt, arg) \
@@ -106,7 +106,8 @@
        }
 
        if (protocol) {
-               if (FAILURE == zend_hash_find(&xport_hash, (char*)protocol, n, 
(void**)&factory)) {
+               char *tmp = estrndup(protocol, n);
+               if (FAILURE == zend_hash_find(&xport_hash, tmp, n + 1, 
(void**)&factory)) {
                        char wrapper_name[32];
 
                        if (n >= sizeof(wrapper_name))
@@ -116,8 +117,10 @@
                        ERR_REPORT(error_string, "Unable to find the socket 
transport \"%s\" - did you forget to enable it when you configured PHP?",
                                        wrapper_name);
 
+                       efree(tmp);
                        return NULL;
                }
+               efree(tmp);
        }
 
        if (factory == NULL) {
http://cvs.php.net/viewvc.cgi/php-src/main/streams/userspace.c?r1=1.38&r2=1.39&diff_format=u
Index: php-src/main/streams/userspace.c
diff -u php-src/main/streams/userspace.c:1.38 
php-src/main/streams/userspace.c:1.39
--- php-src/main/streams/userspace.c:1.38       Mon Jan  1 09:29:36 2007
+++ php-src/main/streams/userspace.c    Mon Jan 15 17:06:52 2007
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: userspace.c,v 1.38 2007/01/01 09:29:36 sebastian Exp $ */
+/* $Id: userspace.c,v 1.39 2007/01/15 17:06:52 tony2001 Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -511,7 +511,7 @@
                RETURN_TRUE;
        }
 
-       if ((zend_hash_find(global_wrapper_hash, protocol, protocol_len, 
(void**)&wrapperpp) == FAILURE) || !wrapperpp) {
+       if ((zend_hash_find(global_wrapper_hash, protocol, protocol_len + 1, 
(void**)&wrapperpp) == FAILURE) || !wrapperpp) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s:// never 
existed, nothing to restore", protocol);
                RETURN_FALSE;
        }

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

Reply via email to