Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Subject field search bug when NULL characteris contained (was:fieldsearch bug?)
寺西です。
Yukio USUDA wrote:
>
> mknmzに通す前と通した後のNMZ.field.subjectで一部コードが変わっています。
>
> 私は
> perlは version 5.005_03 built for i386-freebsd
> nkfは Network Kanji Filter Version 2.0 (2/0301/Shinji Kono)
> に付属のnkfモジュール
> を使用しているのですが、nkfのバージョン違いによるものではないかと思います。
ビンゴでしょう。当方は nkf 1.71 のモジュールを使っています。
> $ nkf -emXZ1 spool/1 |grep --binary-files=text "Subject" |od -t xCa
> 0000000 53 75 62 6a 65 63 74 3a 20 5b 4d 65 77 2d 64 69
> S u b j e c t : sp [ M e w - d i
> 0000020 73 74 20 31 31 31 38 32 5d 20 52 65 28 32 29 3a
> s t sp 1 1 1 8 2 ] sp R e ( 2 ) :
> 0000040 20 2b 42 61 63 6b 75 70 20 20 20 20 20 20 20 20
> sp + B a c k u p sp sp sp sp sp sp sp sp
> 0000060 20 20 20 20 20 20 20 20 28 68 1b 2e 41 00 20 68
> sp sp sp sp sp sp sp sp ( h esc . A nul sp h
> 0000100 00 20 68 00 2e 2e 2e 29 0a 74 68 65 20 61 63 63
> nul sp h nul . . . ) nl t h e sp a c c
> 0000120 65 6e 74 73 20 69 6e 20 74 68 65 20 53 75 62 6a
> e n t s sp i n sp t h e sp S u b j
> 0000140 65 63 74 20 61 73 20 27 00 27 20 6f 72 20 61 73
> e c t sp a s sp ' nul ' sp o r sp a s
> 0000160 20 27 5c 33 35 31 27 2e 20 20 54 68 61 74 20 73
> sp ' \ 3 5 1 ' . sp sp T h a t sp s
> 0000200 65 65 6d 73 20 74 6f 20 68 61 70 70 65 6e 0a
> e e m s sp t o sp h a p p e n nl
> 0000217
$ nkf -emXZ1 spool/1 |grep --binary-files=text "
Subject" |od -t xCa
0000000 53 75 62 6a 65 63 74 3a 20 5b 4d 65 77 2d 64 69
S u b j e c t : sp [ M e w - d i
0000020 73 74 20 31 31 31 38 32 5d 20 52 65 28 32 29 3a
s t sp 1 1 1 8 2 ] sp R e ( 2 ) :
0000040 20 2b 42 61 63 6b 75 70 20 20 20 20 20 20 20 20
sp + B a c k u p sp sp sp sp sp sp sp sp
0000060 20 20 20 20 20 20 20 20 28 68 1b 2e 41 1b 4e 69
sp sp sp sp sp sp sp sp ( h esc . A esc N i
0000100 20 68 1b 4e 69 20 68 1b 4e 69 2e 2e 2e 29 0a 74
sp h esc N i sp h esc N i . . . ) nl t
0000120 68 65 20 61 63 63 65 6e 74 73 20 69 6e 20 74 68
h e sp a c c e n t s sp i n sp t h
0000140 65 20 53 75 62 6a 65 63 74 20 61 73 20 27 1b 4e
e sp S u b j e c t sp a s sp ' esc N
0000160 69 27 20 6f 72 20 61 73 20 27 5c 33 35 31 27 2e
i ' sp o r sp a s sp ' \ 3 5 1 ' .
0000200 20 20 54 68 61 74 20 73 65 65 6d 73 20 74 6f 20
sp sp T h a t sp s e e m s sp t o sp
0000220 68 61 70 70 65 6e 0a
h a p p e n nl
0000227
のように nkf 1.71 ではそのまま出力されます。
が、nkf 2.02 の場合は臼田さんの結果になります。
nkf 2.02 でこの結果になるのが問題のように思いますので、nkf 側での
対処も必要なのではないかと思います。
何せ null 文字を作りだしてしまうのですから。
で、nkf が修正されれば本件の問題は解決するでしょう。
通常のメールであれば、これで問題が起こることはないでしょう。
それとは別に Subject: from: に指定した文字列をデコードして、
null 文字や改行コード、およびその他の制御文字が含まれる場合に
ついては、どうするのが良いかは別に考えるのが良いでしょう。
(null 文字、改行コードについては意図的に仕組まない限り、通常は
入っていないはずです。制御コードについては、通常のメールでも
入っている場合があるようです。)
1. null 文字については、null 以降は削除
2. 改行 文字については、改行 以降は削除
3. そのほかの制御文字は制御文字を削除
ぐらいでしょうか。BS などはまともに処理した方が良いのかな。
(そのまま削除しても大きな問題ではないだろうけど。)
--
=====================================================================
寺西 忠勝(TADAMASA TERANISHI) yw3t-trns@xxxxxxxxxxxxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint = 474E 4D93 8E97 11F6 662D 8A42 17F5 52F4 10E7 D14E