Re: Possible pointer dereference

Поиск
Список
Период
Сортировка
От Gaetano Mendola
Тема Re: Possible pointer dereference
Дата
Msg-id CAJycT5qeCPy-zx0VinJAocnOs3DZ_BPqAcXWeX4hL4+hSvrRfw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Possible pointer dereference  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
While at it the  assert(cnfa != NULL && cnfa->nstates != 0);   at src/backend/regex/rege_dfa.c:282 
is issued too late indeed at line 278 and 279 cnfa was already dereferenced. 

Same for assert(t != NULL) in src/backend/regex/regexec.c:821 is issued way too late.




On Thu, 28 May 2015 at 15:59 Tom Lane <tgl@sss.pgh.pa.us> wrote:
Robert Haas <robertmhaas@gmail.com> writes:
> On Wed, May 27, 2015 at 8:57 PM, Haribabu Kommi
> <kommi.haribabu@gmail.com> wrote:
>> By correcting the following way will solve the problem.
>> return ts ? (*ts != 0) : false; instead of retun *ts != 0;
>> Attached a patch for it.

> If the only caller always passes a valid pointer, there's no point in
> adding this check.  We have many functions in our source base that
> assume that the caller will pass a valid pointer, and changing them
> all would make the code bigger, harder to read, and possibly slower,
> without any real benefit.

Well, we should either install something like Haribabu's patch, or else
remove the existing tests in the function that allow "ts" to be NULL.
And the function's API contract comment needs to be clarified in either
case; the real bug here is lack of a specification.

I don't particularly have an opinion on whether it's valuable to allow
this function to be called without receiving a timestamp back.  Perhaps
the authors of the patch can comment on that.

                        regards, tom lane

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

Предыдущее
От: "Joshua D. Drake"
Дата:
Сообщение: Re: RFC: Remove contrib entirely
Следующее
От: Gaetano Mendola
Дата:
Сообщение: Re: useless assignment pointer argument