Hi Andrei,

This breaks the build (on win32). empty_string is not defined.

- Frank

> andrei                Tue Jan 25 16:33:58 2005 EDT
> 
>   Modified files:              
>     /php-src/ext/standard     browscap.c 
>     /php-src/sapi/embed       php_embed.c 
>   Log:
>   MFB (Fix several egregious leaks in ext/browscap and sapi/embed).
>   
>   
>
http://cvs.php.net/diff.php/php-src/ext/standard/browscap.c?r1=1.82&r2=1.83&ty=u
> Index: php-src/ext/standard/browscap.c
> diff -u php-src/ext/standard/browscap.c:1.82
php-src/ext/standard/browscap.c:1.83
> --- php-src/ext/standard/browscap.c:1.82      Mon Mar 15 16:26:39 2004
> +++ php-src/ext/standard/browscap.c   Tue Jan 25 16:33:55 2005
> @@ -16,7 +16,7 @@
>    
+----------------------------------------------------------------------+
>   */
>  
> -/* $Id: browscap.c,v 1.82 2004/03/15 21:26:39 jay Exp $ */
> +/* $Id: browscap.c,v 1.83 2005/01/25 21:33:55 andrei Exp $ */
>  
>  #include "php.h"
>  #include "php_regex.h"
> @@ -33,12 +33,17 @@
>  
>  /* OBJECTS_FIXME: This whole extension needs going through. The use of
objects looks pretty broken here */
>  
> -static void browscap_entry_dtor(zval *pvalue)
> +static void browscap_entry_dtor(zval **pvalue)
>  {
> -     if (Z_TYPE_P(pvalue) == IS_ARRAY) {
> -             zend_hash_destroy(Z_ARRVAL_P(pvalue));
> -             free(Z_ARRVAL_P(pvalue));
> +     if (Z_TYPE_PP(pvalue) == IS_ARRAY) {
> +             zend_hash_destroy(Z_ARRVAL_PP(pvalue));
> +             free(Z_ARRVAL_PP(pvalue));
> +     } else if (Z_TYPE_PP(pvalue) == IS_STRING) {
> +             if (Z_STRVAL_PP(pvalue) && Z_STRVAL_PP(pvalue) != empty_string) 
> {
> +                     free(Z_STRVAL_PP(pvalue));
> +             }
>       }
> +     free(*pvalue);
>  }
>  
>  /* {{{ convert_browscap_pattern
> @@ -97,7 +102,7 @@
>  
>                               new_property = (zval *) malloc(sizeof(zval));
>                               INIT_PZVAL(new_property);
> -                             Z_STRVAL_P(new_property) =
Z_STRLEN_P(arg2)?zend_strndup(Z_STRVAL_P(arg2), Z_STRLEN_P(arg2)):"";
> +                             Z_STRVAL_P(new_property) =
Z_STRLEN_P(arg2)?zend_strndup(Z_STRVAL_P(arg2),
Z_STRLEN_P(arg2)):empty_string;
>                               Z_STRLEN_P(new_property) = Z_STRLEN_P(arg2);
>                               Z_TYPE_P(new_property) = IS_STRING;
>  
> @@ -123,6 +128,7 @@
>                               section_properties = (HashTable *) 
> malloc(sizeof(HashTable));
>                               zend_hash_init(section_properties, 0, NULL, 
> (dtor_func_t)
browscap_entry_dtor, 1);
>                               current_section->value.ht = section_properties;
> +                             current_section->type = IS_ARRAY;
>                               zend_hash_update(&browser_hash, 
> Z_STRVAL_P(arg1),
Z_STRLEN_P(arg1)+1, (void *) �t_section, sizeof(zval *), NULL);
>  
>                               Z_STRVAL_P(processed) = Z_STRVAL_P(arg1);
>
http://cvs.php.net/diff.php/php-src/sapi/embed/php_embed.c?r1=1.9&r2=1.10&ty=u
> Index: php-src/sapi/embed/php_embed.c
> diff -u php-src/sapi/embed/php_embed.c:1.9
php-src/sapi/embed/php_embed.c:1.10
> --- php-src/sapi/embed/php_embed.c:1.9        Mon Dec 20 14:33:39 2004
> +++ php-src/sapi/embed/php_embed.c    Tue Jan 25 16:33:58 2005
> @@ -15,7 +15,7 @@
>     | Author: Edin Kadribasic <[EMAIL PROTECTED]>                           
  |
>    
+----------------------------------------------------------------------+
>  */
> -/* $Id: php_embed.c,v 1.9 2004/12/20 19:33:39 rasmus Exp $ */
> +/* $Id: php_embed.c,v 1.10 2005/01/25 21:33:58 andrei Exp $ */
>  
>  #include "php_embed.h"
>  
> @@ -211,6 +211,7 @@
>  {
>       php_request_shutdown((void *) 0);
>       php_module_shutdown(TSRMLS_C);
> +     sapi_shutdown();
>  #ifdef ZTS
>      tsrm_shutdown();
>  #endif
> 
> -- 
> PHP CVS Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 

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

Reply via email to