Pantek Library
Hosting Provided By
CybrHost
High Speed Hosting

[ODBC] Bug in ResolveOneParam()

From: Rainer Bauer <usenet(at)munnin.com>
Date: Mon Jul 16 2007 - 06:09:59 EDT


Hello,

I finally was able to track down the bug that occasionally happened when UseServerSidePrepare was enabled: the driver is writing past allocated memory.

The bug is in ResolveOneParam(). At one point this function writes directly into the allocated buffer <qb->query_statement> _without_ checking the allocated size by calling enlarge_query_statement().

I have added the ENLARGE_NEWSTATEMENT() call which should take care of this bug (see attached patch).

Rainer

Index: convert.c



RCS file: /cvsroot/psqlodbc/psqlodbc/convert.c,v retrieving revision 1.161
diff -u -r1.161 convert.c
--- convert.c	4 Jun 2007 10:24:49 -0000	1.161
+++ convert.c	16 Jul 2007 09:52:51 -0000
@@ -3459,6 +3472,7 @@
 	} */
 	if (req_bind)
 	{
+		ENLARGE_NEWSTATEMENT( qb, (qb->npos+4) );
 		npos = qb->npos;
 		qb->npos += 4;
 	}

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend Received on Mon Jul 16 06:08:53 2007

This archive was generated by hypermail 2.1.8 : Thu Aug 09 2007 - 19:31:42 EDT


Contact Us  Legal Notices  Order Services Online 
Pantek Home  Privacy Policy  IT news  Site Map  Pantek Library