Author: byterock
Date: Fri May 28 09:59:01 2010
New Revision: 14079
Modified:
dbd-oracle/trunk/Changes
dbd-oracle/trunk/dbdimp.c
dbd-oracle/trunk/oci8.c
Log:
Fix for rt.cpan.org Ticket #=57256 : Double free problem in dbdimp.c by John Scoles
and another fix for fix for (UNKNOWN OCI STATUS 1041):
Modified: dbd-oracle/trunk/Changes
==============================================================================
--- dbd-oracle/trunk/Changes (original)
+++ dbd-oracle/trunk/Changes Fri May 28 09:59:01 2010
@@ -1,5 +1,6 @@
=head1 Changes in DBD-Oracle 1.25(svn rev )
+ Fix for rt.cpan.org Ticket #=57256 : Double free problem in dbdimp.c by John Scoles
Fix for invalid format in trace of OCILobLocatorIsInit_log_stat reported by Martin Evans Fixed by John Scoles
Fix for very odd UNKNOWN OCI STATUS 1041 (OCILobFreeTemporary) on disconnect reported by John Parker and Dob Mcgowan fixe by John Scoles
Fix for rt.cpan.org Ticket #=55445: get_info(28) SQL_IDENTIFIER_CASE seems to return the wrong value from Martin J Evans and a bunch of re jigging from John Scoles
Modified: dbd-oracle/trunk/dbdimp.c
==============================================================================
--- dbd-oracle/trunk/dbdimp.c (original)
+++ dbd-oracle/trunk/dbdimp.c Fri May 28 09:59:01 2010
@@ -3495,12 +3495,7 @@
}
/* Do OCI bind calls on last iteration. */
if( ((unsigned int) j ) == exe_count - 1 ) {
-
- if(!do_bind_array_exec(sth, imp_sth, phs[i], utf8_flgs[i],i,tuples_utf8_av,tuples_status_av)) {
- Safefree(phs);
- Safefree(utf8_flgs);
- /*Safefree(tuples_utf8_av);*/
- }
+ do_bind_array_exec(sth, imp_sth, phs[i], utf8_flgs[i],i,tuples_utf8_av,tuples_status_av);
}
}
}
Modified: dbd-oracle/trunk/oci8.c
==============================================================================
--- dbd-oracle/trunk/oci8.c (original)
+++ dbd-oracle/trunk/oci8.c Fri May 28 09:59:01 2010
@@ -3120,7 +3120,6 @@
return 0;
}
}
-
OCIAttrGet_stmhp_stat(imp_sth, &num_fields, 0, OCI_ATTR_PARAM_COUNT, status);
if (status != OCI_SUCCESS) {
oci_error(h, imp_sth->errhp, status, "OCIAttrGet OCI_ATTR_PARAM_COUNT");
@@ -4075,7 +4074,6 @@
}
-
OCIDescribeAny_log_stat(imp_sth->svchp, errhp, tablename, strlen(tablename),
(ub1)OCI_OTYPE_NAME, (ub1)1, (ub1)OCI_PTYPE_TABLE, imp_sth->dschp, status);
@@ -4353,11 +4351,13 @@
hv_iterinit(imp_sth->all_params_hv);
while( (phs_svp = hv_iternextsv(imp_sth->all_params_hv, &p, &i)) != NULL ) {
phs_t *phs = (phs_t*)(void*)SvPVX(phs_svp);
- if (phs->desc_h && !phs->is_inout){
- boolean lobEmpty=1;
- OCIAttrSet_log_stat(phs->desc_h, phs->desc_t,&lobEmpty, 0, OCI_ATTR_LOBEMPTY, imp_sth->errhp, status);
- OCIHandleFree_log_stat(phs->desc_h, phs->desc_t, status);
- }
+ /*if (phs->desc_h && !phs->is_inout){*/
+ /* boolean lobEmpty=1;*/
+ /* OCIAttrSet_log_stat(phs->desc_h, phs->desc_t,&lobEmpty, 0, OCI_ATTR_LOBEMPTY, imp_sth->errhp, status);*/
+ /* OCIHandleFree_log_stat(phs->desc_h, phs->desc_t, status);*/
+ /*}
+ /*this seem to cause an error later on so I just got rid of it for Now does */
+ /* not seem to kill anything */
}
}
return 1;
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.