summaryrefslogtreecommitdiff
path: root/log.c
diff options
context:
space:
mode:
authorBen Fuhrmannek2014-08-18 12:29:18 +0200
committerBen Fuhrmannek2014-08-18 12:29:18 +0200
commit73cbc6c3081be203efaf365cce19fcc91d493c14 (patch)
tree7f8956dff76cb15b28b5f36dcca318dc010db0a8 /log.c
parenta772d33cf72bb1f1535a7ff601f21f49d537fbf2 (diff)
extra null checks
Diffstat (limited to 'log.c')
-rw-r--r--log.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/log.c b/log.c
index 3edc119..788478a 100644
--- a/log.c
+++ b/log.c
@@ -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);