byteain for new hex escaped data
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?
Kris Jurka
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.