[ psqlodbc-Bugs-1010945 ] uninitialised value in QR_Constructor
am 19.11.2010 14:40:39 von noreplyBugs item #1010945, was opened at 2010-11-19 14:40
You can respond by visiting:
http://pgfoundry.org/tracker/?func=detail&atid=538&aid=10109 45&group_id=1000125
Category: None
Group: None
Status: Open
Resolution: None
Priority: 3
Submitted By: Arno Moore (arno)
Assigned to: Nobody (None)
Summary: uninitialised value in QR_Constructor
Initial Comment:
psqlODBC version: 09.00.0200
The driver is compiled from source under Linux with Kernel 2.6.22 (glibc 2.6.1, gcc 4.2.1).
While examining our program with valgrind, i'm getting the following error:
==8454== Conditional jump or move depends on uninitialised value(s)
==8454== at 0x59072DD: QR_set_rowstart_in_cache (qresult.c:113)
==8454== by 0x590810C: QR_Constructor (qresult.c:165)
==8454== by 0x58ECEC9: CC_send_query_append (connection.c:2742)
==8454== by 0x58F1323: CC_commit (connection.c:512)
[..]
==8454== Uninitialised value was created by a heap allocation
==8454== at 0x4022C13: malloc (vg_replace_malloc.c:195)
==8454== by 0x590807C: QR_Constructor (qresult.c:138)
==8454== by 0x58ECEC9: CC_send_query_append (connection.c:2742)
==8454== by 0x58F1323: CC_commit (connection.c:512)
This belongs to the function "QResultClass *QR_Constructor()" in qresult.c.
QR_set_rowstart_in_cache(rv, -1) is called before rv->flags = 0 is set and so QR_set_rowstart_in_cache evaluates the value of rv->flags in QR_synchronize_keys while it isn't initialised yet.
Setting rv->flags = 0 before calling QR_set_rowstart_in_cache fixed the problem for me.
Thanks
Arno Moore
------------------------------------------------------------ ----------
You can respond by visiting:
http://pgfoundry.org/tracker/?func=detail&atid=538&aid=10109 45&group_id=1000125
--
Sent via pgsql-odbc mailing list (pgsql-odbc@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-odbc