From fb522f16ee93bf7be38ab7255cb11c68d3752ad2 Mon Sep 17 00:00:00 2001 From: Antony Dovgal Date: Mon, 11 Dec 2006 12:33:55 +0000 Subject: [PATCH] prevent any possible problems with negative values --- ext/oci8/oci8_interface.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/ext/oci8/oci8_interface.c b/ext/oci8/oci8_interface.c index 4ae50c6fa7..35ac09e2c7 100644 --- a/ext/oci8/oci8_interface.c +++ b/ext/oci8/oci8_interface.c @@ -623,7 +623,8 @@ PHP_FUNCTION(oci_lob_truncate) { zval **tmp, *z_descriptor = getThis(); php_oci_descriptor *descriptor; - ub4 trim_length = 0; + long trim_length = 0; + ub4 ub_trim_length; if (getThis()) { if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", &trim_length) == FAILURE) { @@ -640,10 +641,16 @@ PHP_FUNCTION(oci_lob_truncate) php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find descriptor property"); RETURN_FALSE; } - + + if (trim_length < 0) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Length must be greater than or equal to zero"); + RETURN_FALSE; + } + + ub_trim_length = (ub4) trim_length; PHP_OCI_ZVAL_TO_DESCRIPTOR(*tmp, descriptor); - if (php_oci_lob_truncate(descriptor, trim_length TSRMLS_CC)) { + if (php_oci_lob_truncate(descriptor, ub_trim_length TSRMLS_CC)) { RETURN_FALSE; } RETURN_TRUE; -- 2.40.0