From: HybridDog Date: Wed, 27 Jun 2018 16:09:45 +0000 (+0200) Subject: Fix memory leak in guiConfirmRegistration X-Git-Tag: 5.0.0~313 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=53dd7819277c53954d1298dfffa5287c306db8d0;p=oweals%2Fminetest.git Fix memory leak in guiConfirmRegistration --- diff --git a/src/gui/guiConfirmRegistration.cpp b/src/gui/guiConfirmRegistration.cpp index 92ca94d42..fea9f5cda 100644 --- a/src/gui/guiConfirmRegistration.cpp +++ b/src/gui/guiConfirmRegistration.cpp @@ -99,9 +99,10 @@ void GUIConfirmRegistration::regenerateGui(v2u32 screensize) snprintf(info_text_buf, sizeof(info_text_buf), info_text_template.c_str(), address.c_str(), m_playername.c_str()); - gui::IGUIEditBox *e = new gui::intlGUIEditBox( - utf8_to_wide_c(info_text_buf), true, Environment, this, - ID_message, rect2, false, true); + wchar_t *info_text_buf_wide = utf8_to_wide_c(info_text_buf); + gui::IGUIEditBox *e = new gui::intlGUIEditBox(info_text_buf_wide, true, + Environment, this, ID_message, rect2, false, true); + delete[] info_text_buf_wide; e->drop(); e->setMultiLine(true); e->setWordWrap(true); diff --git a/src/util/string.cpp b/src/util/string.cpp index 25f573420..388e8d293 100644 --- a/src/util/string.cpp +++ b/src/util/string.cpp @@ -167,6 +167,8 @@ std::string wide_to_utf8(const std::wstring &input) #endif // _WIN32 +// You must free the returned string! +// The returned string is allocated using new wchar_t *utf8_to_wide_c(const char *str) { std::wstring ret = utf8_to_wide(std::string(str));