]> granicus.if.org Git - php/commitdiff
include \0 to the hash
authorAntony Dovgal <tony2001@php.net>
Mon, 15 Jan 2007 14:59:40 +0000 (14:59 +0000)
committerAntony Dovgal <tony2001@php.net>
Mon, 15 Jan 2007 14:59:40 +0000 (14:59 +0000)
it does matter because we use these strings in phpinfo()

main/streams/filter.c

index 737756c2692f314a91f55614ea8856e22e94bac8..661af93c18a68b3d2cb78db2a6fe041a50a9e873 100644 (file)
@@ -46,12 +46,12 @@ PHPAPI HashTable *_php_get_stream_filters_hash(TSRMLS_D)
 /* API for registering GLOBAL filters */
 PHPAPI int php_stream_filter_register_factory(const char *filterpattern, php_stream_filter_factory *factory TSRMLS_DC)
 {
-       return zend_hash_add(&stream_filters_hash, (char*)filterpattern, strlen(filterpattern), factory, sizeof(*factory), NULL);
+       return zend_hash_add(&stream_filters_hash, (char*)filterpattern, strlen(filterpattern) + 1, factory, sizeof(*factory), NULL);
 }
 
 PHPAPI int php_stream_filter_unregister_factory(const char *filterpattern TSRMLS_DC)
 {
-       return zend_hash_del(&stream_filters_hash, (char*)filterpattern, strlen(filterpattern));
+       return zend_hash_del(&stream_filters_hash, (char*)filterpattern, strlen(filterpattern) + 1);
 }
 
 /* API for registering VOLATILE wrappers */
@@ -65,7 +65,7 @@ PHPAPI int php_stream_filter_register_factory_volatile(const char *filterpattern
                zend_hash_copy(FG(stream_filters), &stream_filters_hash, NULL, &tmpfactory, sizeof(php_stream_filter_factory));
        }
 
-       return zend_hash_add(FG(stream_filters), (char*)filterpattern, strlen(filterpattern), factory, sizeof(*factory), NULL);
+       return zend_hash_add(FG(stream_filters), (char*)filterpattern, strlen(filterpattern) + 1, factory, sizeof(*factory), NULL);
 }
 
 /* Buckets */
@@ -317,7 +317,7 @@ PHPAPI php_stream_filter *php_stream_filter_create(const char *filtername, zval
 
        n = strlen(filtername);
        
-       if (SUCCESS == zend_hash_find(filter_hash, (char*)filtername, n, (void**)&factory)) {
+       if (SUCCESS == zend_hash_find(filter_hash, (char*)filtername, n + 1, (void**)&factory)) {
                filter = factory->create_filter(filtername, filterparams, persistent TSRMLS_CC);
        } else if ((period = strrchr(filtername, '.'))) {
                /* try a wildcard */
@@ -329,7 +329,7 @@ PHPAPI php_stream_filter *php_stream_filter_create(const char *filtername, zval
                while (period && !filter) {
                        *period = '\0';
                        strcat(wildname, ".*");
-                       if (SUCCESS == zend_hash_find(filter_hash, wildname, strlen(wildname), (void**)&factory)) {
+                       if (SUCCESS == zend_hash_find(filter_hash, wildname, strlen(wildname) + 1, (void**)&factory)) {
                                filter = factory->create_filter(filtername, filterparams, persistent TSRMLS_CC);
                        }