diff options
author | George Peter Banyard <girgias@php.net> | 2021-03-15 15:30:58 +0000 |
---|---|---|
committer | George Peter Banyard <girgias@php.net> | 2021-03-17 00:58:01 +0000 |
commit | c465462e912eae73d1e0407f2d2cb815f40f1c13 (patch) | |
tree | 9abd9996e7f4d4e2128a57cf41158b86a3300796 /ext/pdo_oci/oci_driver.c | |
parent | 32fb9b6fd17f6f5b965ac8b2fb69cbfda7603416 (diff) | |
download | php-git-c465462e912eae73d1e0407f2d2cb815f40f1c13.tar.gz |
Use standard PDO way for fetching integer attribute values
Diffstat (limited to 'ext/pdo_oci/oci_driver.c')
-rw-r--r-- | ext/pdo_oci/oci_driver.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/ext/pdo_oci/oci_driver.c b/ext/pdo_oci/oci_driver.c index dd4a7bb171..524820b910 100644 --- a/ext/pdo_oci/oci_driver.c +++ b/ext/pdo_oci/oci_driver.c @@ -425,12 +425,16 @@ static bool oci_handle_rollback(pdo_dbh_t *dbh) /* {{{ */ static bool oci_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) /* {{{ */ { - zend_long lval = zval_get_long(val); + zend_long lval; pdo_oci_db_handle *H = (pdo_oci_db_handle *)dbh->driver_data; switch (attr) { case PDO_ATTR_AUTOCOMMIT: { + if (pdo_get_long_param(&lval, val) == false) { + return false; + } + if (dbh->in_txn) { /* Assume they want to commit whatever is outstanding */ H->last_err = OCITransCommit(H->svc, H->err, 0); @@ -447,6 +451,10 @@ static bool oci_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) } case PDO_ATTR_PREFETCH: { + if (!pdo_get_long_param(&lval, val)) { + return false; + } + H->prefetch = pdo_oci_sanitize_prefetch(lval); return true; } @@ -537,6 +545,9 @@ static bool oci_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) case PDO_OCI_ATTR_CALL_TIMEOUT: { #if (OCI_MAJOR_VERSION >= 18) + if (!pdo_get_long_param(&lval, val)) { + return false; + } ub4 timeout = (ub4) lval; H->last_err = OCIAttrSet(H->svc, OCI_HTYPE_SVCCTX, |