Buffer Overflow com Boost :: Program_options
-
27-09-2019 - |
Pergunta
Tenho um problema em usar o Boost: Program_options
Este programa simples, cópia-colada da documentação do Boosts:
#include <boost/program_options.hpp>
int main( int argc, char** argv )
{
namespace po = boost::program_options;
po::options_description desc("Allowed options");
desc.add_options()
("help", "produce help message")
("compression", po::value<int>(), "set compression level")
;
return 0;
}
falha com um estouro de buffer.
Eu ativei o "Switch de segurança do buffer" e, quando o executo, recebo uma "exceção desconhecida (0xc0000409)" quando passo pela linha desc.add_options()...
Eu uso o Visual Studio 2005 e o Boost 1.43.0.
A propósito, ele é executado se eu desativar o interruptor, mas não me sinto confortável em fazê -lo ... a menos que seja possível desativá -lo localmente.
Então você tem uma solução para esse problema?
EDITAREncontrei o problema que estava vinculando contra libboost_program_options-vc80-mt.lib, que não era a boa biblioteca.
Solução 2
Encontrei o problema que estava vinculando contra libboost_program_options-vc80-mt.lib, que não era a boa biblioteca desde que mudei a biblioteca de tempo de execução para o Multithread DLL.
Outras dicas
Funciona em 2010. Estava prestes a tentar em 2005, mas percebi que não tenho 1,43 compilado nesse ambiente.