From 9a3358220449e75966bb188f2dc49310107b676d Mon Sep 17 00:00:00 2001 From: s_nakamoto Date: Sun, 28 Feb 2010 15:00:32 +0000 Subject: fix unsafe string handling in wxGetTranslation --- util.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'util.cpp') diff --git a/util.cpp b/util.cpp index d90cdc48f..09de89b10 100644 --- a/util.cpp +++ b/util.cpp @@ -445,17 +445,17 @@ const char* wxGetTranslation(const char* pszEnglish) return (*mi).second; // wxWidgets translation - const char* pszTranslated = wxGetTranslation(wxString(pszEnglish, wxConvUTF8)).utf8_str(); + wxString strTranslated = wxGetTranslation(wxString(pszEnglish, wxConvUTF8)); // We don't cache unknown strings because caller might be passing in a // dynamic string and we would keep allocating memory for each variation. - if (strcmp(pszEnglish, pszTranslated) == 0) + if (strcmp(pszEnglish, strTranslated.utf8_str()) == 0) return pszEnglish; // Add to cache, memory doesn't need to be freed. We only cache because // we must pass back a pointer to permanently allocated memory. - char* pszCached = new char[strlen(pszTranslated)+1]; - strcpy(pszCached, pszTranslated); + char* pszCached = new char[strlen(strTranslated.utf8_str())+1]; + strcpy(pszCached, strTranslated.utf8_str()); mapCache[pszEnglish] = pszCached; return pszCached; } -- cgit v1.2.3