summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntony Dovgal <tony2001@php.net>2006-08-15 12:27:24 +0000
committerAntony Dovgal <tony2001@php.net>2006-08-15 12:27:24 +0000
commit88e752c007e7bb0e6dc2a50515bc7b589f365084 (patch)
tree8e99b058541d7a48b79c7d480bb7ee0e01f6dd39
parent8c170d480a3e14e0c61e2ab8d7dff7043127615b (diff)
downloadphp-git-88e752c007e7bb0e6dc2a50515bc7b589f365084.tar.gz
MFH: error message might be NULL
-rw-r--r--ext/oci8/oci8.c18
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");