mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 12:02:48 +01:00
fix unsafe string handling in wxGetTranslation
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@73 1a98c847-1fd6-4fd8-948a-caf3550aa51b
This commit is contained in:
parent
6557910ccf
commit
d7d80a74d5
18
makefile.vc
18
makefile.vc
@ -36,7 +36,7 @@ all: bitcoin.exe
|
|||||||
|
|
||||||
|
|
||||||
.cpp{obj}.obj:
|
.cpp{obj}.obj:
|
||||||
cl $(CFLAGS) /Fo$@ %s
|
cl $(CFLAGS) /Fo$@ %s
|
||||||
|
|
||||||
obj\util.obj: $(HEADERS)
|
obj\util.obj: $(HEADERS)
|
||||||
|
|
||||||
@ -59,10 +59,10 @@ obj\ui.obj: $(HEADERS)
|
|||||||
obj\uibase.obj: $(HEADERS)
|
obj\uibase.obj: $(HEADERS)
|
||||||
|
|
||||||
obj\sha.obj: sha.cpp sha.h
|
obj\sha.obj: sha.cpp sha.h
|
||||||
cl $(CFLAGS) /O2 /Fo$@ %s
|
cl $(CFLAGS) /O2 /Fo$@ %s
|
||||||
|
|
||||||
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
|
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
|
||||||
rc $(INCLUDEPATHS) $(WXDEFS) /Fo$@ %s
|
rc $(INCLUDEPATHS) $(WXDEFS) /Fo$@ %s
|
||||||
|
|
||||||
OBJS= \
|
OBJS= \
|
||||||
obj\util.obj \
|
obj\util.obj \
|
||||||
@ -75,11 +75,11 @@ OBJS= \
|
|||||||
obj\init.obj
|
obj\init.obj
|
||||||
|
|
||||||
bitcoin.exe: $(OBJS) obj\ui.obj obj\uibase.obj obj\sha.obj obj\ui.res
|
bitcoin.exe: $(OBJS) obj\ui.obj obj\uibase.obj obj\sha.obj obj\ui.res
|
||||||
link /nologo /DEBUG /SUBSYSTEM:WINDOWS /OUT:$@ $(LIBPATHS) $** $(LIBS)
|
link /nologo /DEBUG /SUBSYSTEM:WINDOWS /OUT:$@ $(LIBPATHS) $** $(LIBS)
|
||||||
|
|
||||||
|
|
||||||
.cpp{obj\nogui}.obj:
|
.cpp{obj\nogui}.obj:
|
||||||
cl $(CFLAGS) /DwxUSE_GUI=0 /Fo$@ %s
|
cl $(CFLAGS) /DwxUSE_GUI=0 /Fo$@ %s
|
||||||
|
|
||||||
obj\nogui\util.obj: $(HEADERS)
|
obj\nogui\util.obj: $(HEADERS)
|
||||||
|
|
||||||
@ -98,10 +98,10 @@ obj\nogui\rpc.obj: $(HEADERS)
|
|||||||
obj\nogui\init.obj: $(HEADERS)
|
obj\nogui\init.obj: $(HEADERS)
|
||||||
|
|
||||||
bitcoind.exe: $(OBJS:obj\=obj\nogui\) obj\sha.obj obj\ui.res
|
bitcoind.exe: $(OBJS:obj\=obj\nogui\) obj\sha.obj obj\ui.res
|
||||||
link /nologo /DEBUG /OUT:$@ $(LIBPATHS) $** $(LIBS)
|
link /nologo /DEBUG /OUT:$@ $(LIBPATHS) $** $(LIBS)
|
||||||
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-del /Q obj\*
|
-del /Q obj\*
|
||||||
-del *.ilk
|
-del *.ilk
|
||||||
-del *.pdb
|
-del *.pdb
|
||||||
|
@ -20,7 +20,7 @@ class CDataStream;
|
|||||||
class CAutoFile;
|
class CAutoFile;
|
||||||
|
|
||||||
static const int VERSION = 207;
|
static const int VERSION = 207;
|
||||||
static const char* pszSubVer = ".0";
|
static const char* pszSubVer = ".1";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
8
util.cpp
8
util.cpp
@ -445,17 +445,17 @@ const char* wxGetTranslation(const char* pszEnglish)
|
|||||||
return (*mi).second;
|
return (*mi).second;
|
||||||
|
|
||||||
// wxWidgets translation
|
// 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
|
// We don't cache unknown strings because caller might be passing in a
|
||||||
// dynamic string and we would keep allocating memory for each variation.
|
// 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;
|
return pszEnglish;
|
||||||
|
|
||||||
// Add to cache, memory doesn't need to be freed. We only cache because
|
// Add to cache, memory doesn't need to be freed. We only cache because
|
||||||
// we must pass back a pointer to permanently allocated memory.
|
// we must pass back a pointer to permanently allocated memory.
|
||||||
char* pszCached = new char[strlen(pszTranslated)+1];
|
char* pszCached = new char[strlen(strTranslated.utf8_str())+1];
|
||||||
strcpy(pszCached, pszTranslated);
|
strcpy(pszCached, strTranslated.utf8_str());
|
||||||
mapCache[pszEnglish] = pszCached;
|
mapCache[pszEnglish] = pszCached;
|
||||||
return pszCached;
|
return pszCached;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user