Aleksander Alekseev <a.aleks...@postgrespro.ru> writes: >> if (prodesc->user_proname == NULL || prodesc->internal_proname == NULL) >> + { >> + free(prodesc);
> I think that prodesc->user_proname and prodesc->internal_proname should > also be freed if they are not NULL's. Hmm, this is kind of putting lipstick on a pig, isn't it? That code is still prone to leakage further down, because it calls stuff like SearchSysCache which is entirely capable of throwing elog(ERROR). If we're going to touch compile_pltcl_function at all, I'd vote for (1) changing these malloc calls to MemoryContextAlloc(TopMemoryContext,... (2) putting the cleanup into a PG_CATCH block, and removing all the retail free() calls that are there now. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers