2010-05-25 93 views
2

當在下面的單元測試使用牡丹:: SecureVector:嘗試,因爲它試圖其施工過程中解除分配緩衝器來分配SecureVector當發生Botan :: SecureVector - 構造函數中調用的析構函數?

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())); 
} 

段故障。

+1

您聲明一個名爲'vbData'的矢量,然後使用一個名爲'bbData'的矢量(第一個字母不同)。這可能是錯誤(是否有一個全球'bbData'?)或僅僅是一個錯字? – 2010-05-25 16:06:48

+0

好抓;這是一個錯字。 – 2010-05-25 16:09:14

+1

你在這裏遇到的是一個錯誤;它在3月份被發現和修復(但是一個新的穩定版本沒有被旋轉,所以它仍然在那裏)。它只發生在圖書館沒有初始化的時候,但是肯定會發生崩潰從來都不是好行爲。初始化是必需的,因爲SecureVector希望能夠訪問管理鎖定內存的共享池分配器。順便說一句,我建議如果你遇到與botan有關的進一步問題嘗試botan-devel郵件列表 - 那裏的人友好,知道圖書館,並且經常可以快速得到答案。 – 2010-06-07 22:26:49

回答

3

添加一行:

LibraryInitializer botanInit; 

工作。

這在我看來是奇怪的行爲,所以我想我應該發佈它。

相關問題