From 16b1c7cd765dcbaf527d0acdefe92a00074037b4 Mon Sep 17 00:00:00 2001 From: Guilherme Maciel Ferreira Date: Tue, 13 Sep 2011 01:07:55 -0300 Subject: [PATCH] Bug fix: return the boost::program_options::option_description by value - If this object is returned by reference or smart pointer, the boost::program_options::options_description::add() method will delete it causing double free on that object. So we prevent any problem by not exposing the underlying object --- src/config/option/configurationoption.cpp | 4 ++-- src/config/option/configurationoption.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/config/option/configurationoption.cpp b/src/config/option/configurationoption.cpp index da9bfbf..c281313 100644 --- a/src/config/option/configurationoption.cpp +++ b/src/config/option/configurationoption.cpp @@ -70,9 +70,9 @@ ConfigurationOption::~ConfigurationOption() /** * @return The underlining @c boost::program_options::option_description object. */ -shared_ptr ConfigurationOption::get_option_description() +option_description ConfigurationOption::get_option_description() { - return shared_ptr( &option ); + return option; } /** diff --git a/src/config/option/configurationoption.h b/src/config/option/configurationoption.h index e7552e5..7ee5079 100644 --- a/src/config/option/configurationoption.h +++ b/src/config/option/configurationoption.h @@ -50,7 +50,7 @@ public: ); virtual ~ConfigurationOption(); - boost::shared_ptr< boost::program_options::option_description > get_option_description(); + boost::program_options::option_description get_option_description(); std::string get_command_string() const; std::string get_command_description() const; -- 1.7.1