Modify wchar conversion routines to not fetch the next byte past the end

Tom Lane <tgl@sss.pgh.pa.us>

Commit: 572fda27118f7e54c7e4ebb75b48d33896e5f776
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2001-03-08T00:24:34Z
Releases: 7.1.1
Modify wchar conversion routines to not fetch the next byte past the end
of a counted input string.  Marinos Yannikos' recent crash report turns
out to be due to applying pg_ascii2wchar_with_len to a TEXT object that
is smack up against the end of memory.  This is the second just-barely-
reproducible bug report I have seen that traces to some bit of code
fetching one more byte than it is allowed to.  Let's be more careful
out there, boys and girls.
While at it, I changed the code to not risk a similar crash when there
is a truncated multibyte character at the end of an input string.  The
output in this case might not be the most reasonable output possible;
if anyone wants to improve it further, step right up...

Files

PathChange+/−
src/backend/utils/mb/mbutils.c modified +4 −4
src/backend/utils/mb/wchar.c modified +29 −31