>タイトル: Re2:INIファイルの強調キーワード
>発言者: hor
>▼ あろかさん
>> ▼ horさん
>> > CShareDataの構造が変わったとき
>> > 新exeで旧iniを読み込むと強調キーワード(だけ?)が壊れます。
>> >
>> > みなさんはこんな現象でませんか?
>> こちらでも出ています。少し前からでているようです。
私もたまにあります。
>REG_MULTI_SZ 周辺だとは思うのですが・・・私にはさっぱりです。
>どなたか修正していただけますでしょうか?
CShareData_new.cpp:790行、CProfile.cpp:306行
pszMem = new char[MAX_SETNUM * MAX_KEYWORDNUM * ( MAX_KEYWORDLEN ) + 1];
のMAX_SETNUMはよくわかりませんが、キーワードのセパレータを考慮してないので、
その分不足するのではないでしょうか。(MAX登録してないので大丈夫とは思う)
それよりも、793行目でnMemLenを取得した後に必要なバッファサイズを確保した
ほうが確実だと思います。
あと、CProfile.cpp:336で1バイトだけクリアしてますが、後の処理でmemcpyを
使うところがあり0で終端させる処理がないので初期化するなら全エリア0クリア
しないと危険です。
メモリにごみがあるときにキーワードが壊れるんではないでしょうか。