Re: SQLDA fix for ECPG

Поиск
Список
Период
Сортировка
От Boszormenyi Zoltan
Тема Re: SQLDA fix for ECPG
Дата
Msg-id 4EC825F3.5080504@cybertec.at
обсуждение исходный текст
Ответ на Re: SQLDA fix for ECPG  (Michael Meskes <meskes@postgresql.org>)
Ответы Re: SQLDA fix for ECPG  (Michael Meskes <meskes@postgresql.org>)
Список pgsql-hackers
Hi,

2011-11-17 14:53 keltezéssel, Michael Meskes írta:
> On Mon, Nov 14, 2011 at 09:06:30AM +0100, Boszormenyi Zoltan wrote:
>> Yes, you are right. For timestamp and interval, the safe alignment is int64.
>> Patch is attached.
> Applied, thanks.
>
> Michael

thanks.

Hopefully last turn in this topic. For NUMERIC types, the safe minimum
alignment is a pointer because there are 5 int members followed by
two pointer members in this struct. I got a crash from this with a lucky
query and dataset. The DECIMAL struct is safe because the digits[] array
is embedded there.

After fixing this, I got another one at an innocent looking memcpy():

    memcpy((char *) sqlda + offset, num->buf, num->ndigits + 1);

It turned out that when the server sends "0.00", PGTYPESnumeric_from_asc()
constructs a numeric structure with:
    ndigits == 0
    buf == NULL
    digits == NULL.
This makes memcpy() crash and burn. Let's also fix this case.

Best regards,
Zoltán Böszörményi

--
----------------------------------
Zoltán Böszörményi
Cybertec Schönig & Schönig GmbH
Gröhrmühlgasse 26
A-2700 Wiener Neustadt, Austria
Web: http://www.postgresql-support.de
     http://www.postgresql.at/


Вложения

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: range_adjacent and discrete ranges
Следующее
От: Florian Pflug
Дата:
Сообщение: Re: range_adjacent and discrete ranges