[ psqlodbc-Bugs-1010945 ] uninitialised value in QR_Constructor

[ psqlodbc-Bugs-1010945 ] uninitialised value in QR_Constructor

am 20.11.2010 03:00:51 von noreply

Bugs item #1010945, was opened at 2010-11-19 13: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

------------------------------------------------------------ ----------

>Comment By: Hiroshi Inoue (hinoue)
Date: 2010-11-20 02:00

Message:
Thanks for the report.

I would commit the fix to cvs.

------------------------------------------------------------ ----------

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