Thread: pgsql: Replace argument-checking Asserts with regular test-and-elog
pgsql: Replace argument-checking Asserts with regular test-and-elog
From
tgl@postgresql.org (Tom Lane)
Date:
Log Message: ----------- 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. Tags: ---- REL8_1_STABLE Modified Files: -------------- pgsql/src/backend/utils/mb/conversion_procs/ascii_and_mic: ascii_and_mic.c (r1.10 -> r1.10.2.1) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/ascii_and_mic/ascii_and_mic.c?r1=1.10&r2=1.10.2.1) pgsql/src/backend/utils/mb/conversion_procs/cyrillic_and_mic: cyrillic_and_mic.c (r1.11.2.2 -> r1.11.2.3) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/cyrillic_and_mic/cyrillic_and_mic.c?r1=1.11.2.2&r2=1.11.2.3) pgsql/src/backend/utils/mb/conversion_procs/euc_cn_and_mic: euc_cn_and_mic.c (r1.10.2.1 -> r1.10.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/euc_cn_and_mic/euc_cn_and_mic.c?r1=1.10.2.1&r2=1.10.2.2) pgsql/src/backend/utils/mb/conversion_procs/euc_jp_and_sjis: euc_jp_and_sjis.c (r1.13.2.2 -> r1.13.2.3) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/euc_jp_and_sjis.c?r1=1.13.2.2&r2=1.13.2.3) pgsql/src/backend/utils/mb/conversion_procs/euc_kr_and_mic: euc_kr_and_mic.c (r1.10.2.1 -> r1.10.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/euc_kr_and_mic/euc_kr_and_mic.c?r1=1.10.2.1&r2=1.10.2.2) pgsql/src/backend/utils/mb/conversion_procs/euc_tw_and_big5: euc_tw_and_big5.c (r1.10.2.1 -> r1.10.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/euc_tw_and_big5/euc_tw_and_big5.c?r1=1.10.2.1&r2=1.10.2.2) pgsql/src/backend/utils/mb/conversion_procs/latin2_and_win1250: latin2_and_win1250.c (r1.10.2.1 -> r1.10.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/latin2_and_win1250/latin2_and_win1250.c?r1=1.10.2.1&r2=1.10.2.2) pgsql/src/backend/utils/mb/conversion_procs/latin_and_mic: latin_and_mic.c (r1.10.2.1 -> r1.10.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/latin_and_mic/latin_and_mic.c?r1=1.10.2.1&r2=1.10.2.2) pgsql/src/backend/utils/mb/conversion_procs/utf8_and_ascii: utf8_and_ascii.c (r1.11.2.1 -> r1.11.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/utf8_and_ascii/utf8_and_ascii.c?r1=1.11.2.1&r2=1.11.2.2) pgsql/src/backend/utils/mb/conversion_procs/utf8_and_big5: utf8_and_big5.c (r1.11.2.1 -> r1.11.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/utf8_and_big5/utf8_and_big5.c?r1=1.11.2.1&r2=1.11.2.2) pgsql/src/backend/utils/mb/conversion_procs/utf8_and_cyrillic: utf8_and_cyrillic.c (r1.12.2.1 -> r1.12.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c?r1=1.12.2.1&r2=1.12.2.2) pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_cn: utf8_and_euc_cn.c (r1.12.2.1 -> r1.12.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/utf8_and_euc_cn.c?r1=1.12.2.1&r2=1.12.2.2) pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_jp: utf8_and_euc_jp.c (r1.12.2.1 -> r1.12.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/utf8_and_euc_jp.c?r1=1.12.2.1&r2=1.12.2.2) pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_kr: utf8_and_euc_kr.c (r1.12.2.1 -> r1.12.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/utf8_and_euc_kr.c?r1=1.12.2.1&r2=1.12.2.2) pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_tw: utf8_and_euc_tw.c (r1.12.2.1 -> r1.12.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/utf8_and_euc_tw.c?r1=1.12.2.1&r2=1.12.2.2) pgsql/src/backend/utils/mb/conversion_procs/utf8_and_gb18030: utf8_and_gb18030.c (r1.12.2.1 -> r1.12.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c?r1=1.12.2.1&r2=1.12.2.2) pgsql/src/backend/utils/mb/conversion_procs/utf8_and_gbk: utf8_and_gbk.c (r1.11.2.1 -> r1.11.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/utf8_and_gbk/utf8_and_gbk.c?r1=1.11.2.1&r2=1.11.2.2) pgsql/src/backend/utils/mb/conversion_procs/utf8_and_iso8859: utf8_and_iso8859.c (r1.15.2.3 -> r1.15.2.4) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c?r1=1.15.2.3&r2=1.15.2.4) pgsql/src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1: utf8_and_iso8859_1.c (r1.12.2.1 -> r1.12.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/utf8_and_iso8859_1.c?r1=1.12.2.1&r2=1.12.2.2) pgsql/src/backend/utils/mb/conversion_procs/utf8_and_johab: utf8_and_johab.c (r1.12.2.1 -> r1.12.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/utf8_and_johab/utf8_and_johab.c?r1=1.12.2.1&r2=1.12.2.2) pgsql/src/backend/utils/mb/conversion_procs/utf8_and_sjis: utf8_and_sjis.c (r1.11.2.1 -> r1.11.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/utf8_and_sjis/utf8_and_sjis.c?r1=1.11.2.1&r2=1.11.2.2) pgsql/src/backend/utils/mb/conversion_procs/utf8_and_uhc: utf8_and_uhc.c (r1.11.2.1 -> r1.11.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/utf8_and_uhc/utf8_and_uhc.c?r1=1.11.2.1&r2=1.11.2.2) pgsql/src/backend/utils/mb: wchar.c (r1.47.2.7 -> r1.47.2.8) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/wchar.c?r1=1.47.2.7&r2=1.47.2.8) pgsql/src/include/mb: pg_wchar.h (r1.63.2.1 -> r1.63.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/mb/pg_wchar.h?r1=1.63.2.1&r2=1.63.2.2) pgsql/src/backend/utils/mb/conversion_procs/utf8_and_win1250: utf8_and_win1250.c (r1.13.2.1 -> r1.13.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/utf8_and_win1250/utf8_and_win1250.c?r1=1.13.2.1&r2=1.13.2.2) pgsql/src/backend/utils/mb/conversion_procs/utf8_and_win1252: utf8_and_win1252.c (r1.5.2.1 -> r1.5.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/utf8_and_win1252/utf8_and_win1252.c?r1=1.5.2.1&r2=1.5.2.2) pgsql/src/backend/utils/mb/conversion_procs/utf8_and_win1256: utf8_and_win1256.c (r1.13.2.1 -> r1.13.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/utf8_and_win1256/utf8_and_win1256.c?r1=1.13.2.1&r2=1.13.2.2) pgsql/src/backend/utils/mb/conversion_procs/utf8_and_win1258: utf8_and_win1258.c (r1.3.2.1 -> r1.3.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/utf8_and_win1258/utf8_and_win1258.c?r1=1.3.2.1&r2=1.3.2.2) pgsql/src/backend/utils/mb/conversion_procs/utf8_and_win874: utf8_and_win874.c (r1.13.2.1 -> r1.13.2.2) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/conversion_procs/utf8_and_win874/utf8_and_win874.c?r1=1.13.2.1&r2=1.13.2.2)