■ VisualC++(MFC限定)相談室 MFC10.dll■
■ このスレッドは過去ログ倉庫に格納されています
0290デフォルトの名無しさん
NGNGWinMEの場合、文字列の長さをバイト数で返すんじゃなくて
文字数を返すみたいですが、これってWinMEのバグですか?
# 例えば"abcあいう"なら通常9を返すところが6が返って来る。
GetLBTextのMFCの内部コード見てみると明らかにヤバいんですけど。
void CComboBox::GetLBText(int nIndex, CString& rString) const
{
ASSERT(::IsWindow(m_hWnd));
GetLBText(nIndex, rString.GetBufferSetLength(GetLBTextLen(nIndex)));
rString.ReleaseBuffer();
}
# GetLBTextLen(nIndex)で本来より少ない文字数が返ってくるため
# GetBufferSetLengthで文字数より少ないバッファしか割り当てられず
# バッファオーバーフローを引き起こす可能性が。
■ このスレッドは過去ログ倉庫に格納されています