Re: Dereferenced pointer in tablesample.c
От | Tom Lane |
---|---|
Тема | Re: Dereferenced pointer in tablesample.c |
Дата | |
Msg-id | 6975.1435682872@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: Dereferenced pointer in tablesample.c (Petr Jelinek <petr@2ndquadrant.com>) |
Список | pgsql-hackers |
Petr Jelinek <petr@2ndquadrant.com> writes: > On 2015-06-30 09:10, Michael Paquier wrote: >> If the expression argstate is NULL when calling ExecInitExpr(), argstate >> is going to be NULL and dereferenced afterwards, see execQual.c for more >> details. Hence I think that the patch attached should be applied. Thoughts? > Well, yes the ExecEvalExpr should be in the else block if we'd keep the > NULL logic there. > However after rereading the code, ISTM the ExecInitExpr will only return > NULL if the argexpr is NULL and argexpr is added by ParseTableSample > using the transformExpr on every argument which comes from grammar and > those are a_exprs which AFAIK will never be NULL. So I actually think > that the argstate can never be NULL in practice. Indeed. ParseTableSample() is badly in need of a rewrite, but I agree that it's not going to produce null expression trees. > Patch attached. Will push this shortly. regards, tom lane
В списке pgsql-hackers по дате отправления: