summaryrefslogtreecommitdiff
path: root/ext/pdo_oci/oci_driver.c
diff options
context:
space:
mode:
authorGeorge Peter Banyard <girgias@php.net>2021-03-15 15:30:58 +0000
committerGeorge Peter Banyard <girgias@php.net>2021-03-17 00:58:01 +0000
commitc465462e912eae73d1e0407f2d2cb815f40f1c13 (patch)
tree9abd9996e7f4d4e2128a57cf41158b86a3300796 /ext/pdo_oci/oci_driver.c
parent32fb9b6fd17f6f5b965ac8b2fb69cbfda7603416 (diff)
downloadphp-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.c13
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,