Re: crash in LIBPQ_execute_query

Поиск
Список
Период
Сортировка
От Scot Loach
Тема Re: crash in LIBPQ_execute_query
Дата
Msg-id 71837C040963F748B9B94E123A289678664E02@mailserver.sandvine.com
обсуждение исходный текст
Ответ на crash in LIBPQ_execute_query  ("Scot Loach" <sloach@sandvine.com>)
Список pgsql-odbc
That seems to work.
Thanks for the quick reply Dave.

-----Original Message-----
From: Dave Page [mailto:dpage@vale-housing.co.uk]
Sent: Friday, September 02, 2005 8:58 AM
To: Scot Loach; pgsql-odbc@postgresql.org
Cc: Anoop Kumar
Subject: RE: [ODBC] crash in LIBPQ_execute_query




> -----Original Message-----
> From: pgsql-odbc-owner@postgresql.org
> [mailto:pgsql-odbc-owner@postgresql.org] On Behalf Of Scot Loach
> Sent: 02 September 2005 13:12
> To: pgsql-odbc@postgresql.org
> Subject: [ODBC] crash in LIBPQ_execute_query
>
> Some of the queries we use can be very large.
> My code is crashing here:
>
> QResultClass *
> LIBPQ_execute_query(ConnectionClass *self,char *query)
>                   {
>         QResultClass *qres;
>                           PGresult *pgres;
>         char            *ptr;
>         char            cmdbuffer[ERROR_MSG_LENGTH + 1];
>     char                errbuffer[ERROR_MSG_LENGTH + 1];
>                       int         pos=0;
>
>         strcpy(cmdbuffer,query);
>
>
> ERROR_MSG_LENGTH is 4096, my query is larger than that.
> What's the rationale here and how do we fix it?  This works
> fine with the old driver.

Urgh. To be honest, I can't see any need to copy that string at all in
there, so the limit is entirely unwarranted. In addition, there's code
in there marked #ifndef USE_LIBPQ (in LIBPQ_Execute!!), and, it sets the
rowcount to -1 if it can't find a space in the SQL query!

I've tidied that up - patch attached. Please let me know how it goes.

Regards, Dave

В списке pgsql-odbc по дате отправления:

Предыдущее
От: "Joel Fradkin"
Дата:
Сообщение: Re: figuring out why I am having this issue
Следующее
От: "Dave Page"
Дата:
Сообщение: Re: crash in LIBPQ_execute_query