]> granicus.if.org Git - php/commitdiff
- Made eval() and several other runtime-evaluated code portions report the
authorZeev Suraski <zeev@php.net>
Tue, 12 Sep 2000 20:48:33 +0000 (20:48 +0000)
committerZeev Suraski <zeev@php.net>
Tue, 12 Sep 2000 20:48:33 +0000 (20:48 +0000)
  nature and location of errors more accurately (Stas)

NEWS
ext/pcre/php_pcre.c
ext/standard/assert.c
ext/standard/basic_functions.c
php.ini-dist

diff --git a/NEWS b/NEWS
index 8ad22116cf7a3f4f89325b11616d6d1d4927f4db..8c141be36799eea73458179961db5938133a5723 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,8 @@ PHP 4.0                                                                    NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 
 ?? ??? 2000, Version 4.0.3-dev
+- Made eval() and several other runtime-evaluated code portions report the
+  nature and location of errors more accurately (Stas)
 - Added an optional parameter to wordwrap that cuts a string if the length of a
   word is longer than the maximum allowed. (Derick)
 - Added functions pg_put_line and pg_end_copy (Dirk Elmendorf)
@@ -344,7 +346,7 @@ PHP 4.0                                                                    NEWS
   (Patch by daniel.braun@ercom.fr)
 - Added extension YAZ (dickmeiss).
 - Fixed a crash bug triggered by certain cases of class redeclarations
-  (Stanislav & Zeev, Zend Engine)
+  (Stas & Zeev, Zend Engine)
 - Fixed min()/max() segfault. (Andrei)
 - New module for reading EXIF header data from JPEG files.  Most digital
   cameras will embed all sorts of information about a picture inside the
index 6a5a74de9ca33ed886137975d04c3d88b4c005be..68b112ab8f76af621e9005290fdb86ed82d3dd15 100644 (file)
@@ -544,6 +544,7 @@ static int preg_do_eval(char *eval_str, int eval_str_len, char *subject,
        int                      esc_match_len;         /* Length of the quote-escaped match */
        int                      result_len;            /* Length of the result of the evaluation */
        int                      backref;                       /* Current backref */
+       char        *compiled_string_description;
        CLS_FETCH();
        ELS_FETCH();
        
@@ -578,11 +579,14 @@ static int preg_do_eval(char *eval_str, int eval_str_len, char *subject,
                }
        }
 
+       compiled_string_description = zend_make_compiled_string_description("regexp code");
        /* Run the code */
-       if (zend_eval_string(code, &retval CLS_CC ELS_CC) == FAILURE) {
+       if (zend_eval_string(code, &retval, compiled_string_description CLS_CC ELS_CC) == FAILURE) {
+               efree(compiled_string_description);
                zend_error(E_ERROR, "Failed evaluating code:\n%s\n", code);
                /* zend_error() does not return in this case */
        }
+       efree(compiled_string_description);
        convert_to_string(&retval);
        
        /* Save the return value and its length */
index facd41548fb02b96fc357ac680e3a71386447574..ce68c893606df9a874ba7d1d49bdc5cd05ac072a 100644 (file)
@@ -138,6 +138,7 @@ PHP_FUNCTION(assert)
        int val;
        char *myeval = NULL;
        char *cbfunc;
+       char *compiled_string_description;
        CLS_FETCH();
        ASSERTLS_FETCH();
        
@@ -160,10 +161,13 @@ PHP_FUNCTION(assert)
                        EG(error_reporting) = 0;
                }
 
-               if (zend_eval_string(myeval, &retval CLS_CC ELS_CC) == FAILURE) {
+               compiled_string_description = zend_make_compiled_string_description("assert code");
+               if (zend_eval_string(myeval, &retval, compiled_string_description CLS_CC ELS_CC) == FAILURE) {
+                       efree(compiled_string_description);
                        zend_error(E_ERROR, "Failure evaluating code:\n%s\n", myeval);
                        /* zend_error() does not return in this case. */
                }
+               efree(compiled_string_description);
 
                if (ASSERT(quiet_eval)) {
                        EG(error_reporting) = old_error_reporting;
index d047a59c750783a76bd454d6ee2626de9b83b7db..70d63fa15e839b58a1f0d24fefa8de61e44c21b0 100644 (file)
@@ -1691,6 +1691,7 @@ PHP_FUNCTION(highlight_string)
 {
        pval **expr;
        zend_syntax_highlighter_ini syntax_highlighter_ini;
+       char *hicompiled_string_description;
        
        if (ZEND_NUM_ARGS()!=1 || zend_get_parameters_ex(1, &expr)==FAILURE) {
                WRONG_PARAM_COUNT;
@@ -1699,10 +1700,14 @@ PHP_FUNCTION(highlight_string)
        convert_to_string_ex(expr);
 
        php_get_highlight_struct(&syntax_highlighter_ini);
+       
+       hicompiled_string_description = zend_make_compiled_string_description("highlighted code");
 
-       if (highlight_string(*expr, &syntax_highlighter_ini)==FAILURE) {
+       if (highlight_string(*expr, &syntax_highlighter_ini, hicompiled_string_description)==FAILURE) {
+               efree(hicompiled_string_description);
                RETURN_FALSE;
        }
+       efree(hicompiled_string_description);
        RETURN_TRUE;
 }
 /* }}} */
index 12096db572de60dfe025d52cd13237f629c17c2f..1c5f107f3fde1c1b708ac94fe4f07e60e3e16047 100644 (file)
@@ -185,7 +185,14 @@ warn_plus_overloading      =       Off             ; warn if the + operator is used with strings
 ;;;;;;;;;;;;;;;;;
 ; Data Handling ;
 ;;;;;;;;;;;;;;;;;
+<<<<<<< php.ini-dist
+track_vars                     =       On              ; enable the $HTTP_*_VARS[] arrays, where * is one of
+                                                               ; ENV, POST, GET, COOKIE or SERVER.
+                                                               ; This is the preferred way of accessing form variables,
+                                                               ; and prevents common security bugs many developers tend to make.
+=======
 ; Note - track_vars is ALWAYS enabled as of PHP 4.0.3
+>>>>>>> 1.47
 variables_order                =       "EGPCS" ; This directive describes the order in which PHP registers
                                                                ; GET, POST, Cookie, Environment and Built-in variables (G, P,
                                                                ; C, E & S respectively, often referred to as EGPCS or GPC).