2
다음 단위 테스트에 모란 :: SecureVector를 사용 : 그것 건설 중에 버퍼 할당을 해제하려고으로 SecureVector를 할당 할 때Botan :: SecureVector - 생성자에서 Destructor가 호출 되었습니까?
void UnitTest()
{
std::vector<byte> vbData;
vbData.push_back(0x04);
vbData.push_back(0x04);
vbData.push_back(0x04);
Botan::SecureVector<Botan::byte> svData(&vbData[0], vbData.size());
CPPUNIT_ASSERT(vbData == std::vector<byte>(svData.begin(), svData.end()));
}
세그먼트 오류가 발생합니다.
'vbData'라는 벡터를 선언 한 다음 'bbData'라는 벡터를 사용합니다 (첫 번째 문자가 다릅니다). 그게 잠재적으로 오류일까요 (전역'bbData'가 있습니까?) 아니면 그냥 오타입니까? –
좋은 캐치; 오타 였어. –
여기서 발생한 문제는 버그입니다. 그것은 3 월에 발견되고 고쳐졌지만 (그러나 새로운 안정된 방출은 회전되지 않았으므로 여전히 거기에있다.) 라이브러리가 초기화되지 않았을 때만 발생했지만 확실히 크래시는 결코 좋은 행동이 아닙니다. SecureVector가 잠긴 메모리를 관리하는 공유 풀링 할당자를 액세스 할 수 있기를 원하기 때문에 초기화가 필요합니다. BTW, botan-devel 메일 링리스트를 시도하기 위해 botan에게 더 많은 문제가 생기면 제안 할 수 있습니다. 사람들은 친숙하고 도서관을 알고 있으며 종종 신속하게 답변을 얻을 수 있습니다. –