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
|
Список | 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 по дате отправления: