fix unsafe string handling in wxGetTranslation
authors_nakamoto <s_nakamoto@1a98c847-1fd6-4fd8-948a-caf3550aa51b>
Sun, 28 Feb 2010 15:00:32 +0000 (15:00 +0000)
committers_nakamoto <s_nakamoto@1a98c847-1fd6-4fd8-948a-caf3550aa51b>
Sun, 28 Feb 2010 15:00:32 +0000 (15:00 +0000)
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@73 1a98c847-1fd6-4fd8-948a-caf3550aa51b

makefile.vc
serialize.h
util.cpp

index 41f1352..9f82177 100644 (file)
@@ -36,7 +36,7 @@ all: bitcoin.exe
 \r
 \r
 .cpp{obj}.obj:\r
-       cl $(CFLAGS) /Fo$@ %s\r
+    cl $(CFLAGS) /Fo$@ %s\r
 \r
 obj\util.obj: $(HEADERS)\r
 \r
@@ -59,10 +59,10 @@ obj\ui.obj: $(HEADERS)
 obj\uibase.obj: $(HEADERS)\r
 \r
 obj\sha.obj: sha.cpp sha.h\r
-       cl $(CFLAGS) /O2 /Fo$@ %s\r
+    cl $(CFLAGS) /O2 /Fo$@ %s\r
 \r
 obj\ui.res: ui.rc  rc/bitcoin.ico rc/check.ico rc/send16.bmp rc/send16mask.bmp rc/send16masknoshadow.bmp rc/send20.bmp rc/send20mask.bmp rc/addressbook16.bmp rc/addressbook16mask.bmp rc/addressbook20.bmp rc/addressbook20mask.bmp\r
-       rc $(INCLUDEPATHS) $(WXDEFS) /Fo$@ %s\r
+    rc $(INCLUDEPATHS) $(WXDEFS) /Fo$@ %s\r
 \r
 OBJS= \\r
     obj\util.obj \\r
@@ -75,11 +75,11 @@ OBJS= \
     obj\init.obj\r
 \r
 bitcoin.exe: $(OBJS) obj\ui.obj obj\uibase.obj obj\sha.obj obj\ui.res\r
-       link /nologo /DEBUG /SUBSYSTEM:WINDOWS /OUT:$@ $(LIBPATHS) $** $(LIBS)\r
+    link /nologo /DEBUG /SUBSYSTEM:WINDOWS /OUT:$@ $(LIBPATHS) $** $(LIBS)\r
 \r
 \r
 .cpp{obj\nogui}.obj:\r
-       cl $(CFLAGS) /DwxUSE_GUI=0 /Fo$@ %s\r
+    cl $(CFLAGS) /DwxUSE_GUI=0 /Fo$@ %s\r
 \r
 obj\nogui\util.obj: $(HEADERS)\r
 \r
@@ -98,10 +98,10 @@ obj\nogui\rpc.obj: $(HEADERS)
 obj\nogui\init.obj: $(HEADERS)\r
 \r
 bitcoind.exe: $(OBJS:obj\=obj\nogui\) obj\sha.obj obj\ui.res\r
-       link /nologo /DEBUG /OUT:$@ $(LIBPATHS) $** $(LIBS)\r
+    link /nologo /DEBUG /OUT:$@ $(LIBPATHS) $** $(LIBS)\r
 \r
 \r
 clean:\r
-       -del /Q obj\*\r
-       -del *.ilk\r
-       -del *.pdb\r
+    -del /Q obj\*\r
+    -del *.ilk\r
+    -del *.pdb\r
index 5399c23..77dfa95 100644 (file)
@@ -20,7 +20,7 @@ class CDataStream;
 class CAutoFile;\r
 \r
 static const int VERSION = 207;\r
-static const char* pszSubVer = ".0";\r
+static const char* pszSubVer = ".1";\r
 \r
 \r
 \r
index d90cdc4..09de89b 100644 (file)
--- a/util.cpp
+++ b/util.cpp
@@ -445,17 +445,17 @@ const char* wxGetTranslation(const char* pszEnglish)
             return (*mi).second;\r
 \r
         // wxWidgets translation\r
-        const char* pszTranslated = wxGetTranslation(wxString(pszEnglish, wxConvUTF8)).utf8_str();\r
+        wxString strTranslated = wxGetTranslation(wxString(pszEnglish, wxConvUTF8));\r
 \r
         // We don't cache unknown strings because caller might be passing in a\r
         // dynamic string and we would keep allocating memory for each variation.\r
-        if (strcmp(pszEnglish, pszTranslated) == 0)\r
+        if (strcmp(pszEnglish, strTranslated.utf8_str()) == 0)\r
             return pszEnglish;\r
 \r
         // Add to cache, memory doesn't need to be freed.  We only cache because\r
         // we must pass back a pointer to permanently allocated memory.\r
-        char* pszCached = new char[strlen(pszTranslated)+1];\r
-        strcpy(pszCached, pszTranslated);\r
+        char* pszCached = new char[strlen(strTranslated.utf8_str())+1];\r
+        strcpy(pszCached, strTranslated.utf8_str());\r
         mapCache[pszEnglish] = pszCached;\r
         return pszCached;\r
     }\r