代码之家  ›  专栏  ›  技术社区  ›  J. Polfer

在构造函数中调用了SecureVector-析构函数?

  •  2
  • J. Polfer  · 技术社区  · 14 年前

    在以下单元测试中使用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()));
    }
    

    当试图分配SecureVector时,会出现分段错误,因为它在构造缓冲区时试图释放缓冲区。

    1 回复  |  直到 14 年前
        1
  •  3
  •   J. Polfer    14 年前

    添加行:

    LibraryInitializer botanInit;
    

    起作用。

    在我看来这是一种奇怪的行为,所以我想我应该把它贴出来。