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