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