Программы на C++. Форум разработчиков
Anonymous
Утечка памяти в poco :: net :: pop3clientsession, когда сервер недоступен
Сообщение
Anonymous » 01 авг 2025, 18:47
Я написал класс, предназначенный для опроса почтового сервера. Все работает нормально, когда сервер доступен. Однако проблема возникает, когда сервер недоступен. В этом случае Valgrind сообщает следующую утечку памяти в экземпляр Pop3clientsession: < /p>
Код: Выделить всё
==32313== by 0x18F541: std::__cxx11::basic_string::_M_is_local() const (basic_string.h:230)
< /code>
Вот соответствующий код: < /p>
#include
#include
#include
#include
#include
#include
#include
struct EmailStoreConfiguration {
std::string mailServerName;
Poco::UInt16 mailServerPort;
std::string emailAccount;
std::string emailPassword;
};
class EmailStoreProcessor {
public:
EmailStoreProcessor(EmailStoreConfiguration config)
: m_emailStoreConfiguration(std::move(config)), m_sessionPtr(nullptr) {}
bool initialize() {
try {
Poco::Net::POP3ClientSession pop3ClientSession(
m_emailStoreConfiguration.mailServerName,
m_emailStoreConfiguration.mailServerPort
);
pop3ClientSession.setTimeout(Poco::Timespan(30, 0));
if (m_emailStoreConfiguration.emailAccount.empty() || m_emailStoreConfiguration.emailPassword.empty()) {
return false;
}
pop3ClientSession.login(
m_emailStoreConfiguration.emailAccount,
m_emailStoreConfiguration.emailPassword
);
m_sessionPtr = std::make_unique(std::move(pop3ClientSession));
} catch (const Poco::Exception& e) {
std::cerr
Подробнее здесь: [url]https://stackoverflow.com/questions/79722699/memory-leak-in-poconetpop3clientsession-when-server-is-unreachable[/url]
1754063221
Anonymous
Я написал класс, предназначенный для опроса почтового сервера. Все работает нормально, когда сервер доступен. Однако проблема возникает, когда сервер недоступен. В этом случае Valgrind сообщает следующую утечку памяти в экземпляр Pop3clientsession: < /p> [code]==32313== by 0x18F541: std::__cxx11::basic_string::_M_is_local() const (basic_string.h:230) < /code> Вот соответствующий код: < /p> #include #include #include #include #include #include #include struct EmailStoreConfiguration { std::string mailServerName; Poco::UInt16 mailServerPort; std::string emailAccount; std::string emailPassword; }; class EmailStoreProcessor { public: EmailStoreProcessor(EmailStoreConfiguration config) : m_emailStoreConfiguration(std::move(config)), m_sessionPtr(nullptr) {} bool initialize() { try { Poco::Net::POP3ClientSession pop3ClientSession( m_emailStoreConfiguration.mailServerName, m_emailStoreConfiguration.mailServerPort ); pop3ClientSession.setTimeout(Poco::Timespan(30, 0)); if (m_emailStoreConfiguration.emailAccount.empty() || m_emailStoreConfiguration.emailPassword.empty()) { return false; } pop3ClientSession.login( m_emailStoreConfiguration.emailAccount, m_emailStoreConfiguration.emailPassword ); m_sessionPtr = std::make_unique(std::move(pop3ClientSession)); } catch (const Poco::Exception& e) { std::cerr Подробнее здесь: [url]https://stackoverflow.com/questions/79722699/memory-leak-in-poconetpop3clientsession-when-server-is-unreachable[/url]