Replace argument-checking Asserts with regular test-and-elog checks in all

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

Commit: 31fb149a091324fcdb0eada87018cf3e43f812d3
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2009-01-29T19:24:19Z
Releases: 8.2.12
Replace argument-checking Asserts with regular test-and-elog checks in all
encoding conversion functions.  These are not can't-happen cases because
it's possible to create a conversion with the wrong conversion function
for the specified encoding pair.  That would lead to an Assert crash in
an Assert-enabled build, or incorrect conversion otherwise, neither of
which is desirable.  This would be a DOS issue if production databases
were customarily built with asserts enabled, but fortunately that's not so.
Per an observation by Heikki.

Back-patch to all supported branches.

Files

PathChange+/−
src/backend/utils/mb/conversion_procs/ascii_and_mic/ascii_and_mic.c modified +3 −7
src/backend/utils/mb/conversion_procs/cyrillic_and_mic/cyrillic_and_mic.c modified +21 −61
src/backend/utils/mb/conversion_procs/euc_cn_and_mic/euc_cn_and_mic.c modified +3 −7
src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/euc_jp_and_sjis.c modified +7 −19
src/backend/utils/mb/conversion_procs/euc_kr_and_mic/euc_kr_and_mic.c modified +3 −7
src/backend/utils/mb/conversion_procs/euc_tw_and_big5/euc_tw_and_big5.c modified +7 −19
src/backend/utils/mb/conversion_procs/latin2_and_win1250/latin2_and_win1250.c modified +7 −19
src/backend/utils/mb/conversion_procs/latin_and_mic/latin_and_mic.c modified +7 −19
src/backend/utils/mb/conversion_procs/utf8_and_ascii/utf8_and_ascii.c modified +3 −7
src/backend/utils/mb/conversion_procs/utf8_and_big5/utf8_and_big5.c modified +3 −7
src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c modified +3 −7
src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/utf8_and_euc_cn.c modified +3 −7
src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/utf8_and_euc_jp.c modified +3 −7
src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/utf8_and_euc_kr.c modified +3 −7
src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/utf8_and_euc_tw.c modified +3 −7
src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c modified +3 −7
src/backend/utils/mb/conversion_procs/utf8_and_gbk/utf8_and_gbk.c modified +3 −7
src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/utf8_and_iso8859_1.c modified +3 −7
src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c modified +3 −5
src/backend/utils/mb/conversion_procs/utf8_and_johab/utf8_and_johab.c modified +3 −7
src/backend/utils/mb/conversion_procs/utf8_and_sjis/utf8_and_sjis.c modified +3 −7
src/backend/utils/mb/conversion_procs/utf8_and_uhc/utf8_and_uhc.c modified +3 −7
src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c modified +3 −5
src/backend/utils/mb/wchar.c modified +34 −1
src/include/mb/pg_wchar.h modified +20 −1