From 5cb86b5857efe35b2b7edb71314e3bc54a340974 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Mon, 7 May 2012 14:57:01 +0400 Subject: [PATCH] gui/osdlang_setup.cpp: fix memleak - with dynamic menus locale = strdup never freed --- src/gui/osdlang_setup.cpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/gui/osdlang_setup.cpp b/src/gui/osdlang_setup.cpp index 0d51e0572..fd38e59f2 100644 --- a/src/gui/osdlang_setup.cpp +++ b/src/gui/osdlang_setup.cpp @@ -171,18 +171,14 @@ void COsdLangSetup::showLanguageSetup(CMenuWidget *osdl_setup) { for (int count=0; countd_name); + char * locale = namelist[count]->d_name; char * pos = strstr(locale, ".locale"); if (pos != NULL) { - char iname[50]; *pos = '\0'; - sprintf(iname, "%s", locale); - CMenuOptionLanguageChooser* oj = new CMenuOptionLanguageChooser((char*)locale, this, iname); - oj->addOption(locale); + CMenuOptionLanguageChooser* oj = new CMenuOptionLanguageChooser((char*)locale, this, locale); osdl_setup->addItem( oj ); - } else - free(locale); + } free(namelist[count]); } free(namelist);