Fwd: ODBC: SQLGetDescField returns incorrect length for SQL_DESC_COUNT field of APD

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-odbc(at)lists(dot)postgresql(dot)org
Cc: Werewolf <werewolfff(at)yandex(dot)ru>
Subject: Fwd: ODBC: SQLGetDescField returns incorrect length for SQL_DESC_COUNT field of APD
Date: 2019-06-26 16:35:37
Message-ID: 9379.1561566937@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

Forwarding to correct list ...

------- Forwarded Message

Date: Wed, 26 Jun 2019 19:00:58 +0300
From: Werewolf <werewolfff(at)yandex(dot)ru>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: ODBC: SQLGetDescField returns incorrect length for SQL_DESC_COUNT
field of APD

Field SQL_DESC_COUNT should fit into a variable of type SQLSMALLINT. But
when retrieving this field of APD SQLGetDescField returns SQLINTEGER
value. So memory corruption is possible in application using psqlodbc
driver.
Also the function returns an undefined error code -8.

The mistake is located here
https://git.postgresql.org/gitweb/?p=psqlodbc.git;a=blob;f=pgapi30.c;h=ba0dd6d731bbccd81392def43ae9b10e9c013aef;hb=HEAD#l1240

Just replace 'ret = SQL_IS_SMALLINT;' with 'rettype = SQL_IS_SMALLINT;'.

------- End of Forwarded Message

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message Inoue, Hiroshi 2019-06-26 20:18:34 Re: psqlodbc: No memory available to store statement
Previous Message Donovan Hsieh 2019-06-26 15:30:26 psqlODBC - PostgreSQL ODBC driver error