reverted makefile.unix wx-config -- version 0.3.6
This commit is contained in:
parent
ec82517c89
commit
a75560d828
3
bignum.h
3
bignum.h
@ -401,7 +401,8 @@ public:
|
|||||||
|
|
||||||
CBigNum& operator>>=(unsigned int shift)
|
CBigNum& operator>>=(unsigned int shift)
|
||||||
{
|
{
|
||||||
// Note: BN_rshift segfaults on 64-bit ubuntu 9.10 if 2^shift is greater than the number
|
// Note: BN_rshift segfaults on 64-bit ubuntu 9.10 if 2^shift is greater than the number,
|
||||||
|
// tested OK on 64-bit ubuntu 10.4
|
||||||
if (!BN_rshift(this, this, shift))
|
if (!BN_rshift(this, this, shift))
|
||||||
throw bignum_error("CBigNum:operator>>= : BN_rshift failed");
|
throw bignum_error("CBigNum:operator>>= : BN_rshift failed");
|
||||||
return *this;
|
return *this;
|
||||||
|
@ -3,12 +3,21 @@
|
|||||||
# file license.txt or http://www.opensource.org/licenses/mit-license.php.
|
# file license.txt or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
|
|
||||||
WXLIBS=$(shell wx-config --debug=yes --libs --static)
|
INCLUDEPATHS= \
|
||||||
WXFLAGS=$(shell wx-config --debug=yes --cppflags)
|
-I"/usr/include" \
|
||||||
|
-I"/usr/local/include/wx-2.9" \
|
||||||
|
-I"/usr/local/lib/wx/include/gtk2-unicode-debug-static-2.9"
|
||||||
|
|
||||||
LIBPATHS= \
|
LIBPATHS= \
|
||||||
|
-L"/usr/lib" \
|
||||||
-L"/usr/local/lib"
|
-L"/usr/local/lib"
|
||||||
|
|
||||||
|
WXLIBS= \
|
||||||
|
-Wl,-Bstatic \
|
||||||
|
-l wx_gtk2ud-2.9 \
|
||||||
|
-Wl,-Bdynamic \
|
||||||
|
-l gtk-x11-2.0 -l SM
|
||||||
|
|
||||||
LIBS= \
|
LIBS= \
|
||||||
-Wl,-Bstatic \
|
-Wl,-Bstatic \
|
||||||
-l boost_system \
|
-l boost_system \
|
||||||
@ -22,7 +31,7 @@ LIBS= \
|
|||||||
|
|
||||||
DEFS=-D__WXGTK__ -DNOPCH
|
DEFS=-D__WXGTK__ -DNOPCH
|
||||||
DEBUGFLAGS=-g -D__WXDEBUG__
|
DEBUGFLAGS=-g -D__WXDEBUG__
|
||||||
CFLAGS=-O2 -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS)
|
CFLAGS=-O2 -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
|
||||||
HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
|
HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
|
||||||
script.h db.h net.h irc.h main.h rpc.h uibase.h ui.h noui.h init.h
|
script.h db.h net.h irc.h main.h rpc.h uibase.h ui.h noui.h init.h
|
||||||
|
|
||||||
@ -43,10 +52,10 @@ all: bitcoin
|
|||||||
|
|
||||||
|
|
||||||
headers.h.gch: headers.h $(HEADERS)
|
headers.h.gch: headers.h $(HEADERS)
|
||||||
g++ -c $(CFLAGS) $(WXFLAGS) -DGUI -o $@ $<
|
g++ -c $(CFLAGS) -DGUI -o $@ $<
|
||||||
|
|
||||||
obj/%.o: %.cpp $(HEADERS) headers.h.gch
|
obj/%.o: %.cpp $(HEADERS) headers.h.gch
|
||||||
g++ -c $(CFLAGS) $(WXFLAGS) -DGUI -o $@ $<
|
g++ -c $(CFLAGS) -DGUI -o $@ $<
|
||||||
|
|
||||||
cryptopp/obj/%.o: cryptopp/%.cpp
|
cryptopp/obj/%.o: cryptopp/%.cpp
|
||||||
g++ -c $(CFLAGS) -O3 -DCRYPTOPP_DISABLE_SSE2 -o $@ $<
|
g++ -c $(CFLAGS) -O3 -DCRYPTOPP_DISABLE_SSE2 -o $@ $<
|
||||||
|
60
script.cpp
60
script.cpp
@ -16,6 +16,7 @@ static const CBigNum bnZero(0);
|
|||||||
static const CBigNum bnOne(1);
|
static const CBigNum bnOne(1);
|
||||||
static const CBigNum bnFalse(0);
|
static const CBigNum bnFalse(0);
|
||||||
static const CBigNum bnTrue(1);
|
static const CBigNum bnTrue(1);
|
||||||
|
static const size_t nMaxNumSize = 258;
|
||||||
|
|
||||||
|
|
||||||
bool CastToBool(const valtype& vch)
|
bool CastToBool(const valtype& vch)
|
||||||
@ -53,8 +54,12 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
|||||||
vector<valtype> altstack;
|
vector<valtype> altstack;
|
||||||
if (pvStackRet)
|
if (pvStackRet)
|
||||||
pvStackRet->clear();
|
pvStackRet->clear();
|
||||||
|
if (script.size() > 20000)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
while (pc < pend)
|
while (pc < pend)
|
||||||
{
|
{
|
||||||
bool fExec = !count(vfExec.begin(), vfExec.end(), false);
|
bool fExec = !count(vfExec.begin(), vfExec.end(), false);
|
||||||
@ -66,6 +71,8 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
|||||||
valtype vchPushValue;
|
valtype vchPushValue;
|
||||||
if (!script.GetOp(pc, opcode, vchPushValue))
|
if (!script.GetOp(pc, opcode, vchPushValue))
|
||||||
return false;
|
return false;
|
||||||
|
if (vchPushValue.size() > 5000)
|
||||||
|
return false;
|
||||||
|
|
||||||
if (fExec && opcode <= OP_PUSHDATA4)
|
if (fExec && opcode <= OP_PUSHDATA4)
|
||||||
stack.push_back(vchPushValue);
|
stack.push_back(vchPushValue);
|
||||||
@ -104,19 +111,20 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
|||||||
// Control
|
// Control
|
||||||
//
|
//
|
||||||
case OP_NOP:
|
case OP_NOP:
|
||||||
|
case OP_NOP1: case OP_NOP2: case OP_NOP3: case OP_NOP4: case OP_NOP5:
|
||||||
|
case OP_NOP6: case OP_NOP7: case OP_NOP8: case OP_NOP9: case OP_NOP10:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OP_VER:
|
case OP_VER:
|
||||||
|
case OP_VERIF:
|
||||||
|
case OP_VERNOTIF:
|
||||||
{
|
{
|
||||||
CBigNum bn(VERSION);
|
return false;
|
||||||
stack.push_back(bn.getvch());
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OP_IF:
|
case OP_IF:
|
||||||
case OP_NOTIF:
|
case OP_NOTIF:
|
||||||
case OP_VERIF:
|
|
||||||
case OP_VERNOTIF:
|
|
||||||
{
|
{
|
||||||
// <expression> if [statements] [else [statements]] endif
|
// <expression> if [statements] [else [statements]] endif
|
||||||
bool fValue = false;
|
bool fValue = false;
|
||||||
@ -125,11 +133,8 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
|||||||
if (stack.size() < 1)
|
if (stack.size() < 1)
|
||||||
return false;
|
return false;
|
||||||
valtype& vch = stacktop(-1);
|
valtype& vch = stacktop(-1);
|
||||||
if (opcode == OP_VERIF || opcode == OP_VERNOTIF)
|
|
||||||
fValue = (CBigNum(VERSION) >= CBigNum(vch));
|
|
||||||
else
|
|
||||||
fValue = CastToBool(vch);
|
fValue = CastToBool(vch);
|
||||||
if (opcode == OP_NOTIF || opcode == OP_VERNOTIF)
|
if (opcode == OP_NOTIF)
|
||||||
fValue = !fValue;
|
fValue = !fValue;
|
||||||
stack.pop_back();
|
stack.pop_back();
|
||||||
}
|
}
|
||||||
@ -163,13 +168,13 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
|||||||
if (fValue)
|
if (fValue)
|
||||||
stack.pop_back();
|
stack.pop_back();
|
||||||
else
|
else
|
||||||
pc = pend;
|
return false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OP_RETURN:
|
case OP_RETURN:
|
||||||
{
|
{
|
||||||
pc = pend;
|
return false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -383,6 +388,8 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
|||||||
valtype& vch2 = stacktop(-1);
|
valtype& vch2 = stacktop(-1);
|
||||||
vch1.insert(vch1.end(), vch2.begin(), vch2.end());
|
vch1.insert(vch1.end(), vch2.begin(), vch2.end());
|
||||||
stack.pop_back();
|
stack.pop_back();
|
||||||
|
if (stacktop(-1).size() > 5000)
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -504,7 +511,7 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
|||||||
if (fEqual)
|
if (fEqual)
|
||||||
stack.pop_back();
|
stack.pop_back();
|
||||||
else
|
else
|
||||||
pc = pend;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -525,6 +532,8 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
|||||||
// (in -- out)
|
// (in -- out)
|
||||||
if (stack.size() < 1)
|
if (stack.size() < 1)
|
||||||
return false;
|
return false;
|
||||||
|
if (stacktop(-1).size() > nMaxNumSize)
|
||||||
|
return false;
|
||||||
CBigNum bn(stacktop(-1));
|
CBigNum bn(stacktop(-1));
|
||||||
switch (opcode)
|
switch (opcode)
|
||||||
{
|
{
|
||||||
@ -564,6 +573,9 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
|||||||
// (x1 x2 -- out)
|
// (x1 x2 -- out)
|
||||||
if (stack.size() < 2)
|
if (stack.size() < 2)
|
||||||
return false;
|
return false;
|
||||||
|
if (stacktop(-2).size() > nMaxNumSize ||
|
||||||
|
stacktop(-1).size() > nMaxNumSize)
|
||||||
|
return false;
|
||||||
CBigNum bn1(stacktop(-2));
|
CBigNum bn1(stacktop(-2));
|
||||||
CBigNum bn2(stacktop(-1));
|
CBigNum bn2(stacktop(-1));
|
||||||
CBigNum bn;
|
CBigNum bn;
|
||||||
@ -593,13 +605,13 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case OP_LSHIFT:
|
case OP_LSHIFT:
|
||||||
if (bn2 < bnZero)
|
if (bn2 < bnZero || bn2 > CBigNum(2048))
|
||||||
return false;
|
return false;
|
||||||
bn = bn1 << bn2.getulong();
|
bn = bn1 << bn2.getulong();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OP_RSHIFT:
|
case OP_RSHIFT:
|
||||||
if (bn2 < bnZero)
|
if (bn2 < bnZero || bn2 > CBigNum(2048))
|
||||||
return false;
|
return false;
|
||||||
bn = bn1 >> bn2.getulong();
|
bn = bn1 >> bn2.getulong();
|
||||||
break;
|
break;
|
||||||
@ -625,7 +637,7 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
|||||||
if (CastToBool(stacktop(-1)))
|
if (CastToBool(stacktop(-1)))
|
||||||
stack.pop_back();
|
stack.pop_back();
|
||||||
else
|
else
|
||||||
pc = pend;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -635,6 +647,10 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
|||||||
// (x min max -- out)
|
// (x min max -- out)
|
||||||
if (stack.size() < 3)
|
if (stack.size() < 3)
|
||||||
return false;
|
return false;
|
||||||
|
if (stacktop(-3).size() > nMaxNumSize ||
|
||||||
|
stacktop(-2).size() > nMaxNumSize ||
|
||||||
|
stacktop(-1).size() > nMaxNumSize)
|
||||||
|
return false;
|
||||||
CBigNum bn1(stacktop(-3));
|
CBigNum bn1(stacktop(-3));
|
||||||
CBigNum bn2(stacktop(-2));
|
CBigNum bn2(stacktop(-2));
|
||||||
CBigNum bn3(stacktop(-1));
|
CBigNum bn3(stacktop(-1));
|
||||||
@ -719,7 +735,7 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
|||||||
if (fSuccess)
|
if (fSuccess)
|
||||||
stack.pop_back();
|
stack.pop_back();
|
||||||
else
|
else
|
||||||
pc = pend;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -789,7 +805,7 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
|||||||
if (fSuccess)
|
if (fSuccess)
|
||||||
stack.pop_back();
|
stack.pop_back();
|
||||||
else
|
else
|
||||||
pc = pend;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -797,9 +813,21 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
|||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Size limits
|
||||||
|
if (stack.size() + altstack.size() > 1000)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (...)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!vfExec.empty())
|
||||||
|
return false;
|
||||||
|
|
||||||
if (pvStackRet)
|
if (pvStackRet)
|
||||||
*pvStackRet = stack;
|
*pvStackRet = stack;
|
||||||
return (stack.empty() ? false : CastToBool(stack.back()));
|
return (stack.empty() ? false : CastToBool(stack.back()));
|
||||||
|
27
script.h
27
script.h
@ -136,6 +136,20 @@ enum opcodetype
|
|||||||
OP_CHECKMULTISIG,
|
OP_CHECKMULTISIG,
|
||||||
OP_CHECKMULTISIGVERIFY,
|
OP_CHECKMULTISIGVERIFY,
|
||||||
|
|
||||||
|
// expansion
|
||||||
|
OP_NOP1,
|
||||||
|
OP_NOP2,
|
||||||
|
OP_NOP3,
|
||||||
|
OP_NOP4,
|
||||||
|
OP_NOP5,
|
||||||
|
OP_NOP6,
|
||||||
|
OP_NOP7,
|
||||||
|
OP_NOP8,
|
||||||
|
OP_NOP9,
|
||||||
|
OP_NOP10,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// multi-byte opcodes
|
// multi-byte opcodes
|
||||||
OP_SINGLEBYTE_END = 0xF0,
|
OP_SINGLEBYTE_END = 0xF0,
|
||||||
@ -276,6 +290,18 @@ inline const char* GetOpName(opcodetype opcode)
|
|||||||
case OP_CHECKMULTISIG : return "OP_CHECKMULTISIG";
|
case OP_CHECKMULTISIG : return "OP_CHECKMULTISIG";
|
||||||
case OP_CHECKMULTISIGVERIFY : return "OP_CHECKMULTISIGVERIFY";
|
case OP_CHECKMULTISIGVERIFY : return "OP_CHECKMULTISIGVERIFY";
|
||||||
|
|
||||||
|
// expanson
|
||||||
|
case OP_NOP1 : return "OP_NOP1";
|
||||||
|
case OP_NOP2 : return "OP_NOP2";
|
||||||
|
case OP_NOP3 : return "OP_NOP3";
|
||||||
|
case OP_NOP4 : return "OP_NOP4";
|
||||||
|
case OP_NOP5 : return "OP_NOP5";
|
||||||
|
case OP_NOP6 : return "OP_NOP6";
|
||||||
|
case OP_NOP7 : return "OP_NOP7";
|
||||||
|
case OP_NOP8 : return "OP_NOP8";
|
||||||
|
case OP_NOP9 : return "OP_NOP9";
|
||||||
|
case OP_NOP10 : return "OP_NOP10";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// multi-byte opcodes
|
// multi-byte opcodes
|
||||||
@ -285,7 +311,6 @@ inline const char* GetOpName(opcodetype opcode)
|
|||||||
case OP_PUBKEYHASH : return "OP_PUBKEYHASH";
|
case OP_PUBKEYHASH : return "OP_PUBKEYHASH";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
case OP_INVALIDOPCODE : return "OP_INVALIDOPCODE";
|
case OP_INVALIDOPCODE : return "OP_INVALIDOPCODE";
|
||||||
default:
|
default:
|
||||||
return "UNKNOWN_OPCODE";
|
return "UNKNOWN_OPCODE";
|
||||||
|
@ -19,8 +19,8 @@ class CScript;
|
|||||||
class CDataStream;
|
class CDataStream;
|
||||||
class CAutoFile;
|
class CAutoFile;
|
||||||
|
|
||||||
static const int VERSION = 304;
|
static const int VERSION = 306;
|
||||||
static const char* pszSubVer = ".0";
|
static const char* pszSubVer = "";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ RequestExecutionLevel highest
|
|||||||
|
|
||||||
# General Symbol Definitions
|
# General Symbol Definitions
|
||||||
!define REGKEY "SOFTWARE\$(^Name)"
|
!define REGKEY "SOFTWARE\$(^Name)"
|
||||||
!define VERSION 0.3.3
|
!define VERSION 0.3.6
|
||||||
!define COMPANY "Bitcoin project"
|
!define COMPANY "Bitcoin project"
|
||||||
!define URL http://www.bitcoin.org/
|
!define URL http://www.bitcoin.org/
|
||||||
|
|
||||||
@ -42,12 +42,12 @@ Var StartMenuGroup
|
|||||||
!insertmacro MUI_LANGUAGE English
|
!insertmacro MUI_LANGUAGE English
|
||||||
|
|
||||||
# Installer attributes
|
# Installer attributes
|
||||||
OutFile bitcoin-0.3.3-win32-setup.exe
|
OutFile bitcoin-0.3.6-win32-setup.exe
|
||||||
InstallDir $PROGRAMFILES\Bitcoin
|
InstallDir $PROGRAMFILES\Bitcoin
|
||||||
CRCCheck on
|
CRCCheck on
|
||||||
XPStyle on
|
XPStyle on
|
||||||
ShowInstDetails show
|
ShowInstDetails show
|
||||||
VIProductVersion 0.3.3.0
|
VIProductVersion 0.3.6.0
|
||||||
VIAddVersionKey ProductName Bitcoin
|
VIAddVersionKey ProductName Bitcoin
|
||||||
VIAddVersionKey ProductVersion "${VERSION}"
|
VIAddVersionKey ProductVersion "${VERSION}"
|
||||||
VIAddVersionKey CompanyName "${COMPANY}"
|
VIAddVersionKey CompanyName "${COMPANY}"
|
||||||
|
Loading…
Reference in New Issue
Block a user