diff options
author | Antony Dovgal <tony2001@php.net> | 2006-08-15 12:27:24 +0000 |
---|---|---|
committer | Antony Dovgal <tony2001@php.net> | 2006-08-15 12:27:24 +0000 |
commit | 88e752c007e7bb0e6dc2a50515bc7b589f365084 (patch) | |
tree | 8e99b058541d7a48b79c7d480bb7ee0e01f6dd39 | |
parent | 8c170d480a3e14e0c61e2ab8d7dff7043127615b (diff) | |
download | php-git-88e752c007e7bb0e6dc2a50515bc7b589f365084.tar.gz |
MFH: error message might be NULL
-rw-r--r-- | ext/oci8/oci8.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/ext/oci8/oci8.c b/ext/oci8/oci8.c index 220dea76c1..c56df2d59e 100644 --- a/ext/oci8/oci8.c +++ b/ext/oci8/oci8.c @@ -426,7 +426,7 @@ oci_error: if (error_code) { int tmp_buf_len = strlen(tmp_buf); - if (tmp_buf[tmp_buf_len - 1] == '\n') { + if (tmp_buf_len > 0 && tmp_buf[tmp_buf_len - 1] == '\n') { tmp_buf[tmp_buf_len - 1] = '\0'; } @@ -845,8 +845,12 @@ sb4 php_oci_error(OCIError *err_p, sword status TSRMLS_DC) break; case OCI_SUCCESS_WITH_INFO: errcode = php_oci_fetch_errmsg(err_p, &errbuf TSRMLS_CC); - php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCI_SUCCESS_WITH_INFO: %s", errbuf); - efree(errbuf); + if (errbuf) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCI_SUCCESS_WITH_INFO: %s", errbuf); + efree(errbuf); + } else { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCI_SUCCESS_WITH_INFO: failed to fetch error message"); + } break; case OCI_NEED_DATA: php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCI_NEED_DATA"); @@ -856,8 +860,12 @@ sb4 php_oci_error(OCIError *err_p, sword status TSRMLS_DC) break; case OCI_ERROR: errcode = php_oci_fetch_errmsg(err_p, &errbuf TSRMLS_CC); - php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", errbuf); - efree(errbuf); + if (errbuf) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", errbuf); + efree(errbuf); + } else { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "failed to fetch error message"); + } break; case OCI_INVALID_HANDLE: php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCI_INVALID_HANDLE"); |