On ons, 2009-11-18 at 06:46 -0500, Kris Jurka wrote:
> Looking at how byteain detects whether the input it is passed is the new
> hex format escape or the old octal escape, it uses:
>
> char *inputText = PG_GETARG_CSTRING(0);
> if (inputText[0] == '\\' && inputText[1] == 'x')
>
> Doesn't this read off the end of inputText in the case of "SELECT
> ''::bytea", or is there some padding happening somewhere that makes this
> legal?
In case of ''::bytea, the inputText is "" as a C string, and so
inputText[0] == '\0' and the second test is not executed.