cvs: php-src(PHP_5_2) / NEWS /ext/pdo_oci oci_driver.c

From: Date: Tue, 10 Apr 2007 20:28:49 +0000
Subject: cvs: php-src(PHP_5_2) / NEWS /ext/pdo_oci oci_driver.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-43807@lists.php.net to get a copy of this message
tony2001 Tue Apr 10 20:28:49 2007 UTC Modified files: (Branch: PHP_5_2) /php-src NEWS /php-src/ext/pdo_oci oci_driver.c Log: fix #41043 (pdo_oci crash when freeing error text with persistent connection) http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.633&r2=1.2027.2.547.2.634&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2027.2.547.2.633 php-src/NEWS:1.2027.2.547.2.634 --- php-src/NEWS:1.2027.2.547.2.633 Tue Apr 10 09:37:09 2007 +++ php-src/NEWS Tue Apr 10 20:28:48 2007 @@ -47,6 +47,8 @@ - Fixed zend_llist_remove_tail (Michael Wallner, Dmitry) - Fixed a thread safety issue in gd gif read code (Nuno, Roman Nemecek) - Fixed CVE-2007-1001, GD wbmp used with invalid image size (Pierre) +- Fixed bug #41043 (pdo_oci crash when freeing error text with persistent + connection). (Tony) - Fixed bug #41037 (unregister_tick_function() inside the tick function crash PHP). (Tony) - Fixed bug #41026 (segfault when calling "self::method()" in shutdown functions). http://cvs.php.net/viewvc.cgi/php-src/ext/pdo_oci/oci_driver.c?r1=1.24.2.4.2.2&r2=1.24.2.4.2.3&diff_format=u Index: php-src/ext/pdo_oci/oci_driver.c diff -u php-src/ext/pdo_oci/oci_driver.c:1.24.2.4.2.2 php-src/ext/pdo_oci/oci_driver.c:1.24.2.4.2.3 --- php-src/ext/pdo_oci/oci_driver.c:1.24.2.4.2.2 Mon Jan 1 19:24:50 2007 +++ php-src/ext/pdo_oci/oci_driver.c Tue Apr 10 20:28:49 2007 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: oci_driver.c,v 1.24.2.4.2.2 2007/01/01 19:24:50 iliaa Exp $ */ +/* $Id: oci_driver.c,v 1.24.2.4.2.3 2007/04/10 20:28:49 tony2001 Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -58,6 +58,7 @@ ub4 _oci_error(OCIError *err, pdo_dbh_t *dbh, pdo_stmt_t *stmt, char *what, sword status, const char *file, int line TSRMLS_DC) /* {{{ */ { text errbuf[1024] = "<<Unknown>>"; + char tmp_buf[2048]; pdo_oci_db_handle *H = (pdo_oci_db_handle *)dbh->driver_data; pdo_oci_error_info *einfo; pdo_oci_stmt *S = NULL; @@ -89,26 +90,33 @@ break; case OCI_ERROR: OCIErrorGet(err, (ub4)1, NULL, &einfo->errcode, errbuf, (ub4)sizeof(errbuf), OCI_HTYPE_ERROR); - spprintf(&einfo->errmsg, 0, "%s: %s (%s:%d)", what, errbuf, file, line); + slprintf(tmp_buf, sizeof(tmp_buf), "%s: %s (%s:%d)", what, errbuf, file, line); + einfo->errmsg = pestrdup(tmp_buf, dbh->is_persistent); break; case OCI_SUCCESS_WITH_INFO: OCIErrorGet(err, (ub4)1, NULL, &einfo->errcode, errbuf, (ub4)sizeof(errbuf), OCI_HTYPE_ERROR); - spprintf(&einfo->errmsg, 0, "%s: OCI_SUCCESS_WITH_INFO: %s (%s:%d)", what, errbuf, file, line); + slprintf(tmp_buf, sizeof(tmp_buf), "%s: OCI_SUCCESS_WITH_INFO: %s (%s:%d)", what, errbuf, file, line); + einfo->errmsg = pestrdup(tmp_buf, dbh->is_persistent); break; case OCI_NEED_DATA: - spprintf(&einfo->errmsg, 0, "%s: OCI_NEED_DATA (%s:%d)", what, file, line); + slprintf(tmp_buf, sizeof(tmp_buf), "%s: OCI_NEED_DATA (%s:%d)", what, file, line); + einfo->errmsg = pestrdup(tmp_buf, dbh->is_persistent); break; case OCI_NO_DATA: - spprintf(&einfo->errmsg, 0, "%s: OCI_NO_DATA (%s:%d)", what, file, line); + slprintf(tmp_buf, sizeof(tmp_buf), "%s: OCI_NO_DATA (%s:%d)", what, file, line); + einfo->errmsg = pestrdup(tmp_buf, dbh->is_persistent); break; case OCI_INVALID_HANDLE: - spprintf(&einfo->errmsg, 0, "%s: OCI_INVALID_HANDLE (%s:%d)", what, file, line); + slprintf(tmp_buf, sizeof(tmp_buf), "%s: OCI_INVALID_HANDLE (%s:%d)", what, file, line); + einfo->errmsg = pestrdup(tmp_buf, dbh->is_persistent); break; case OCI_STILL_EXECUTING: - spprintf(&einfo->errmsg, 0, "%s: OCI_STILL_EXECUTING (%s:%d)", what, file, line); + slprintf(tmp_buf, sizeof(tmp_buf), "%s: OCI_STILL_EXECUTING (%s:%d)", what, file, line); + einfo->errmsg = pestrdup(tmp_buf, dbh->is_persistent); break; case OCI_CONTINUE: - spprintf(&einfo->errmsg, 0, "%s: OCI_CONTINUE (%s:%d)", what, file, line); + slprintf(tmp_buf, sizeof(tmp_buf), "%s: OCI_CONTINUE (%s:%d)", what, file, line); + einfo->errmsg = pestrdup(tmp_buf, dbh->is_persistent); break; }

« previous php.cvs (#43807) next »