]> granicus.if.org Git - php/commitdiff
Fixed Bug #51577 (Uninitialized memory reference with oci_bind_array_by_name)
authorChristopher Jones <sixd@php.net>
Fri, 16 Apr 2010 20:36:40 +0000 (20:36 +0000)
committerChristopher Jones <sixd@php.net>
Fri, 16 Apr 2010 20:36:40 +0000 (20:36 +0000)
ext/oci8/oci8_statement.c

index fa5d91559210f4ea9556af2f09f9354c9d231fbb..f7fda511a75eaa056a822d46070b76ff18199ff5 100644 (file)
@@ -809,8 +809,16 @@ void php_oci_statement_free(php_oci_statement *statement TSRMLS_DC)
 int php_oci_bind_pre_exec(void *data, void *result TSRMLS_DC)
 {
        php_oci_bind *bind = (php_oci_bind *) data;
+
        *(int *)result = 0;
 
+       if (Z_TYPE_P(bind->zval) == IS_ARRAY) {
+               /* These checks are currently valid for oci_bind_by_name, not
+                * oci_bind_array_by_name.  Also bind->type and
+                * bind->indicator are not used for oci_bind_array_by_name.
+                */
+               return 0;
+       }       
        switch (bind->type) {
                case SQLT_NTY:
                case SQLT_BFILEE:
@@ -850,9 +858,8 @@ int php_oci_bind_pre_exec(void *data, void *result TSRMLS_DC)
                        }
                        break;
        }
-       
-       /* reset all bind stuff to a normal state..-. */
 
+       /* reset all bind stuff to a normal state..-. */
        bind->indicator = 0;
 
        return 0;