Re: Small memory leak in execute.c of ECPG driver
От | Heikki Linnakangas |
---|---|
Тема | Re: Small memory leak in execute.c of ECPG driver |
Дата | |
Msg-id | 54D08836.1070003@vmware.com обсуждение исходный текст |
Ответ на | Small memory leak in execute.c of ECPG driver (Michael Paquier <michael.paquier@gmail.com>) |
Ответы |
Re: Small memory leak in execute.c of ECPG driver
|
Список | pgsql-hackers |
On 02/03/2015 08:58 AM, Michael Paquier wrote: > Hi all, > > In exactly 3 places of the ECPG driver (for numeric, for interval and > for date), we do something as follows: > /* Allocation of mallocedval */ > if (!(mallocedval = ecpg_strdup("array [", lineno))) > return false; > > for (element = 0; element < var->arrsize; element++) > { > int result; > > ptr = stuff_alloc(); > if (!ptr) > return false; <= Leak here of mallocedval > > It happens that if the allocation done within this for loop fails we > leak mallocedval that was previously allocated. Attached is a patch to > fix this issue spotted by Coverity. I think there are more similar leaks nearby. After the first hunk, there's another if-check with "return false" that also leaks mallocedval. Right after the two other hunks, if the ecpg_realloc fails, we again leak mallocedval. I wonder why Coverity didn't warn about those? Maybe it would've, after fixing the first ones. - Heikki
В списке pgsql-hackers по дате отправления: