diff options
| author | Ben Fuhrmannek | 2014-08-18 12:29:18 +0200 |
|---|---|---|
| committer | Ben Fuhrmannek | 2014-08-18 12:29:18 +0200 |
| commit | 73cbc6c3081be203efaf365cce19fcc91d493c14 (patch) | |
| tree | 7f8956dff76cb15b28b5f36dcca318dc010db0a8 | |
| parent | a772d33cf72bb1f1535a7ff601f21f49d537fbf2 (diff) | |
extra null checks
| -rw-r--r-- | log.c | 13 |
1 files changed, 8 insertions, 5 deletions
| @@ -112,7 +112,7 @@ PHP_SUHOSIN_API void suhosin_log(int loglevel, char *fmt, ...) | |||
| 112 | char *ip_address; | 112 | char *ip_address; |
| 113 | char *fname; | 113 | char *fname; |
| 114 | char *alertstring; | 114 | char *alertstring; |
| 115 | int lineno; | 115 | int lineno = 0; |
| 116 | va_list ap; | 116 | va_list ap; |
| 117 | TSRMLS_FETCH(); | 117 | TSRMLS_FETCH(); |
| 118 | 118 | ||
| @@ -160,12 +160,15 @@ PHP_SUHOSIN_API void suhosin_log(int loglevel, char *fmt, ...) | |||
| 160 | if (zend_is_executing(TSRMLS_C)) { | 160 | if (zend_is_executing(TSRMLS_C)) { |
| 161 | zend_execute_data *exdata = EG(current_execute_data); | 161 | zend_execute_data *exdata = EG(current_execute_data); |
| 162 | if (exdata) { | 162 | if (exdata) { |
| 163 | if (getcaller && exdata->prev_execute_data) { | 163 | if (getcaller && exdata->prev_execute_data && exdata->prev_execute_data->opline && exdata->prev_execute_data->op_array) { |
| 164 | lineno = exdata->prev_execute_data->opline->lineno; | 164 | lineno = exdata->prev_execute_data->opline->lineno; |
| 165 | fname = (char *)exdata->prev_execute_data->op_array->filename; | 165 | fname = (char *)exdata->prev_execute_data->op_array->filename; |
| 166 | } else { | 166 | } else if (exdata->opline && exdata->op_array) { |
| 167 | lineno = exdata->opline->lineno; | 167 | lineno = exdata->opline->lineno; |
| 168 | fname = (char *)exdata->op_array->filename; | 168 | fname = (char *)exdata->op_array->filename; |
| 169 | } else { | ||
| 170 | lineno = 0; | ||
| 171 | fname = "[unknown filename]"; | ||
| 169 | } | 172 | } |
| 170 | } else { | 173 | } else { |
| 171 | lineno = zend_get_executed_lineno(TSRMLS_C); | 174 | lineno = zend_get_executed_lineno(TSRMLS_C); |
