2007/02/27(Tue)
○ NetBSD
多分はてな経由で
不正なUTF-8文字列の話。
要するに
RFC3629の10. Security Considerationsの話ですな。
嫌な予感がしたのでNetBSD iconvでちゃんとEILSEQを返すかのテスト。
○ GNU libiconv-1.10 ○ glibc-2.5 iconv ○ Solaris8 iconv × NetBSD 4.99.12 iconv
古い実装だしな、直すか。
同様にサロゲート"\xed\xa0\80"(0xd800)~"\xed\xbf\xbf(0xdfff)がEILSEQになるかのテスト。
× GNU libiconv-1.10 × glibc-2.5 iconv ○ Solaris8 iconv × NetBSD 4.99.12 iconv
ふーん。
つーわけでNetBSD用のpatch。
patch-citrus_utf8.c
patch-unicode.h
もうちょいテストしてcommitするべし。
まあ
ISO-IR-165で書いたように、変換前にチェックをすることこそが危険なんだけどね。
他にも(昨日書いたけど)CNS11643の8面に
basic latinがあったりするし。
○ ちょと話はズレるけど
エスケープ漏れといえば、某商用O-R mapping実装がIBM DB2のSQL方言(LIKEに全角_%が使える)に
対応してなくて(以下略)というのがあったなそういや、多分まだ直ってないんだろうな。