If you're at it can you guys please use strlcpy() instead of strncpy().

Thanks,

Andi

At 15:39 30/03/2002 +0100, Marcus Boerger wrote:
>Try this patch. It does the same but it's a better solution.
>But where is the configure variable to have your feature
>disabled by default? - keep to discussion or say why you
>ignore discussion points.
>
>
>
>marcus
>
> >At 04:40 30.03.2002, you wrote:
> >rootshell  Fri Mar 29 23:13:29 2002 CET
> >
> >  Modified files:
> >     /php4/main/main.c
> >  Log:
> >    lot of same errors are logged as one, cleans errorlog
> >
>
>cvs -z3 -q diff main\main.c (in directory S:\php4\)
>Index: main/main.c
>===================================================================
>RCS file: /repository/php4/main/main.c,v
>retrieving revision 1.440
>diff -u -r1.440 main.c
>--- main/main.c 19 Mar 2002 23:29:37 -0000      1.440
>+++ main/main.c 30 Mar 2002 14:32:05 -0000
>@@ -84,6 +84,9 @@
>  PHPAPI int core_globals_id;
>  #endif
>
>+#define ERROR_BUF_LEN  1024
>+static char last_err_buf[ERROR_BUF_LEN];
>+
>  static void php_build_argv(char *s, zval *track_vars_array TSRMLS_DC);
>
>
>@@ -408,18 +411,21 @@
>   extended error handling function */
>  static void php_error_cb(int type, const char *error_filename, const 
> uint error_lineno, const char *format, va_list args)
>  {
>-       char buffer[1024];
>-       int buffer_len;
>+       char buffer[ERROR_BUF_LEN];
>+       int buffer_len, display;
>         TSRMLS_FETCH();
>
>         buffer_len = vsnprintf(buffer, sizeof(buffer)-1, format, args);
>         buffer[sizeof(buffer)-1]=0;
>-       if(buffer_len > sizeof(buffer) - 1 || buffer_len < 0) {
>-               buffer_len = sizeof(buffer) - 1;
>+       if ((display = strncmp(buffer, last_err_buf, ERROR_BUF_LEN)) != 0) {
>+               strncpy(last_err_buf, buffer, ERROR_BUF_LEN);
>+               if(buffer_len > sizeof(buffer) - 1 || buffer_len < 0) {
>+                       buffer_len = sizeof(buffer) - 1;
>+               }
>         }
>-
>+
>         /* display/log the error if necessary */
>-       if ((EG(error_reporting) & type || (type & E_CORE))
>+       if (display && (EG(error_reporting) & type || (type & E_CORE))
>                 && (PG(log_errors) || PG(display_errors) || 
> (!module_initialized))) {
>                 char *error_type_str;
>
>@@ -449,14 +455,14 @@
>                 }
>
>                 if (!module_initialized || PG(log_errors)) {
>-                       char log_buffer[1024];
>+                       char log_buffer[ERROR_BUF_LEN];
>
>  #ifdef PHP_WIN32
>                         if (type==E_CORE_ERROR || type==E_CORE_WARNING) {
>                                 MessageBox(NULL, buffer, error_type_str, 
> MB_OK|ZEND_SERVICE_MB_STYLE);
>                         }
>  #endif
>-                       snprintf(log_buffer, 1024, "PHP %s:  %s in %s on 
>line %d", error_type_str, buffer, error_filename, error_lineno);
>+                       snprintf(log_buffer, ERROR_BUF_LEN, "PHP %s:  %s 
>in %s on line %d", error_type_str, buffer, error_filename, error_lineno);
>                         php_log_err(log_buffer TSRMLS_CC);
>                 }
>                 if (module_initialized && PG(display_errors)
>@@ -469,8 +475,8 @@
>                                 "<br />\n<b>%s</b>:  %s in <b>%s</b> on 
> line <b>%d</b><br />\n"
>                                 : "\n%s: %s in %s on line %d\n";
>                         if (PG(xmlrpc_errors)) {
>-                               error_format = do_alloca(1024);
>-                               snprintf(error_format, 1023, "<?xml 
>version=\"1.0\"?><methodResponse><fault><value><struct><member><name>faultCode</name><value><int>%ld</int></value></member><member><name>faultString</name><value><string>%%s:%%s
> 
>in %%s on line 
>%%d</string></value></member></struct></value></fault></methodResponse>", 
>PG(xmlrpc_error_number));
>+                               error_format = do_alloca(ERROR_BUF_LEN);
>+                               snprintf(error_format, ERROR_BUF_LEN-1, 
>"<?xml 
>version=\"1.0\"?><methodResponse><fault><value><struct><member><name>faultCode</name><value><int>%ld</int></value></member><member><name>faultString</name><value><string>%%s:%%s
> 
>in %%s on line 
>%%d</string></value></member></struct></value></fault></methodResponse>", 
>PG(xmlrpc_error_number));
>                         }
>
>                         if (prepend_string) {
>@@ -526,6 +532,7 @@
>         }
>
>         /* Log if necessary */
>+       if (!display) return;
>         if (PG(track_errors) && EG(active_symbol_table)) {
>                 pval *tmp;
>
>
>
>
>--
>PHP Development Mailing List <http://www.php.net/>
>To unsubscribe, visit: http://www.php.net/unsub.php


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to