Обсуждение: Fwd: ODBC: SQLGetDescField returns incorrect length for SQL_DESC_COUNTfield of APD
Forwarding to correct list ... ------- Forwarded Message Date: Wed, 26 Jun 2019 19:00:58 +0300 From: Werewolf <werewolfff@yandex.ru> To: pgsql-bugs@lists.postgresql.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
Re: Fwd: ODBC: SQLGetDescField returns incorrect length forSQL_DESC_COUNT field of APD
От
"Inoue, Hiroshi"
Дата:
Hi, On 2019/06/27 1:35, Tom Lane wrote: > Forwarding to correct list ... > > ------- Forwarded Message > > Date: Wed, 26 Jun 2019 19:00:58 +0300 > From: Werewolf <werewolfff@yandex.ru> > To: pgsql-bugs@lists.postgresql.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;'. Oops, my mistake. I would commit the fix. thanks. Hiroshi Inoue > > ------- End of Forwarded Message > > > > ---