From 43aab65e8651ef821e456a65b5429faaa4e80f2c Mon Sep 17 00:00:00 2001 From: Antony Dovgal Date: Tue, 15 Aug 2006 12:27:04 +0000 Subject: [PATCH] error message might be NULL --- ext/oci8/oci8.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/ext/oci8/oci8.c b/ext/oci8/oci8.c index 6c75292484..5b28f35b8e 100644 --- a/ext/oci8/oci8.c +++ b/ext/oci8/oci8.c @@ -432,7 +432,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'; } @@ -860,8 +860,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"); @@ -871,8 +875,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"); -- 2.50.1