[PHP-DEV] CVS update: php3 From: zeev (php-dev <email protected>)
Date: 10/10/98

Date: Saturday October 10, 1998 @ 19:39
Author: zeev

Update of /repository/php3
In directory asf:/u2/tmp/cvs-serv18880

Modified Files:
        ChangeLog variables.c
Log Message:
unset() fix

Index: php3/ChangeLog
diff -c php3/ChangeLog:1.506 php3/ChangeLog:1.507
*** php3/ChangeLog:1.506 Sat Oct 10 18:35:48 1998
--- php3/ChangeLog Sat Oct 10 19:39:54 1998
***************
*** 1,6 ****
--- 1,7 ----
  'PHP 3.0 CHANGE LOG ChangeLog
  |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  ??, Version 3.0.6
+ - Fixed a crash bug in unset() when unsetting illegal variables (rare).
  - Made ImageInterlace and ImageTransparentColor parameters optional, and made
    them return the current/new settings.
  - Optimized GetImageSize() <thies <email protected>>.
Index: php3/variables.c
diff -c php3/variables.c:1.155 php3/variables.c:1.156
*** php3/variables.c:1.155 Fri Sep 18 12:55:01 1998
--- php3/variables.c Sat Oct 10 19:39:55 1998
***************
*** 29,35 ****
   */
  
  
! /* $Id: variables.c,v 1.155 1998/09/18 16:55:01 rasmus Exp $ */
  
  #ifdef THREAD_SAFE
  #include "tls.h"
--- 29,35 ----
   */
  
  
! /* $Id: variables.c,v 1.156 1998/10/10 23:39:55 zeev Exp $ */
  
  #ifdef THREAD_SAFE
  #include "tls.h"
***************
*** 455,462 ****
                  
                  if (!var_ptr || var_ptr->cs_data.array_write) { /* variable didn't exist before unset(), remove it completely */
                          clean_unassigned_variable_top(1 _INLINE_TLS);
                  } else {
- var = var_ptr->value.varptr.pvalue;
                          pval_destructor(var _INLINE_TLS);
                          var->value.str.val = undefined_variable_string;
                          var->value.str.len=0;
--- 455,463 ----
                  
                  if (!var_ptr || var_ptr->cs_data.array_write) { /* variable didn't exist before unset(), remove it completely */
                          clean_unassigned_variable_top(1 _INLINE_TLS);
+ } else if (!(var=var_ptr->value.varptr.pvalue)) {
+ result->value.lval = 1; /* the variable didn't parse properly, so it was obviously not set */
                  } else {
                          pval_destructor(var _INLINE_TLS);
                          var->value.str.val = undefined_variable_string;
                          var->value.str.len=0;

--
PHP Development Mailing List   http://www.php.net/
To unsubscribe send an empty message to php-dev-unsubscribe <email protected>
For help: php-dev-help <email protected>