On Mon, Feb 02, 2004 at 09:27:46PM -0500, Tom Lane wrote:
> Kurt Roeckx <Q(at)ping(dot)be> writes:
> > - if (memcmp(re_array[i].cre_pat, text_re, text_re_len) == 0 &&
> > + if (VARSIZE(re_array[i].cre_pat) == text_re_len &&
> > + memcmp(re_array[i].cre_pat, text_re, text_re_len) == 0 &&
>
> This is not actually broken. The first four bytes of what memcmp is
> comparing are the length, and so it'll fall out immediately anyway if
> the lengths differ.
That assumes the memcmp starts from the first char and not from
the last. If it starts from the last you have undefined
behaviour.
Kurt