ODBC: SQLGetDescField returns incorrect length for SQL_DESC_COUNT field of APD

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
Date: 2019-06-26 16:00:58
Message-ID: 5b31c146-80fd-f480-ea7a-f64102be4721@yandex.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

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;'.

Browse pgsql-bugs by date

  From Date Subject
Next Message PG Bug reporting form 2019-06-26 16:07:08 BUG #15876: A SUGGESTION
Previous Message Michael Paquier 2019-06-26 14:12:11 Re: BUG #15789: libpq compilation with OpenSSL 1.1.1b fails on Windows with Visual Studio 2017