diff options
Diffstat (limited to 'log.c')
| -rw-r--r-- | log.c | 9 |
1 files changed, 5 insertions, 4 deletions
| @@ -107,8 +107,8 @@ PHP_SUHOSIN_API void suhosin_log(int loglevel, char *fmt, ...) | |||
| 107 | unsigned short etype; | 107 | unsigned short etype; |
| 108 | DWORD evid; | 108 | DWORD evid; |
| 109 | #endif | 109 | #endif |
| 110 | char buf[5000]; | 110 | char buf[5000] = {0}; |
| 111 | char error[5000]; | 111 | char error[5000] = {0}; |
| 112 | char *ip_address; | 112 | char *ip_address; |
| 113 | char *fname; | 113 | char *fname; |
| 114 | char *alertstring; | 114 | char *alertstring; |
| @@ -146,6 +146,9 @@ PHP_SUHOSIN_API void suhosin_log(int loglevel, char *fmt, ...) | |||
| 146 | va_start(ap, fmt); | 146 | va_start(ap, fmt); |
| 147 | ap_php_vsnprintf(error, sizeof(error), fmt, ap); | 147 | ap_php_vsnprintf(error, sizeof(error), fmt, ap); |
| 148 | va_end(ap); | 148 | va_end(ap); |
| 149 | if (SUHOSIN_G(log_max_error_length) > 0 && SUHOSIN_G(log_max_error_length) < (sizeof(error) - 4)) { | ||
| 150 | memcpy(error + SUHOSIN_G(log_max_error_length), "...", 4); | ||
| 151 | } | ||
| 149 | while (error[i]) { | 152 | while (error[i]) { |
| 150 | if (error[i] < 32) error[i] = '.'; | 153 | if (error[i] < 32) error[i] = '.'; |
| 151 | i++; | 154 | i++; |
| @@ -437,5 +440,3 @@ SDEBUG("scriptname %s", SUHOSIN_G(log_phpscriptname)); | |||
| 437 | * vim600: noet sw=4 ts=4 fdm=marker | 440 | * vim600: noet sw=4 ts=4 fdm=marker |
| 438 | * vim<600: noet sw=4 ts=4 | 441 | * vim<600: noet sw=4 ts=4 |
| 439 | */ | 442 | */ |
| 440 | |||
| 441 | |||
