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)
|
||||
{
|
||||
// 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))
|
||||
throw bignum_error("CBigNum:operator>>= : BN_rshift failed");
|
||||
return *this;
|
||||
|
@ -3,12 +3,21 @@
|
||||
# file license.txt or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
||||
WXLIBS=$(shell wx-config --debug=yes --libs --static)
|
||||
WXFLAGS=$(shell wx-config --debug=yes --cppflags)
|
||||
INCLUDEPATHS= \
|
||||
-I"/usr/include" \
|
||||
-I"/usr/local/include/wx-2.9" \
|
||||
-I"/usr/local/lib/wx/include/gtk2-unicode-debug-static-2.9"
|
||||
|
||||
LIBPATHS= \
|
||||
-L"/usr/lib" \
|
||||
-L"/usr/local/lib"
|
||||
|
||||
WXLIBS= \
|
||||
-Wl,-Bstatic \
|
||||
-l wx_gtk2ud-2.9 \
|
||||
-Wl,-Bdynamic \
|
||||
-l gtk-x11-2.0 -l SM
|
||||
|
||||
LIBS= \
|
||||
-Wl,-Bstatic \
|
||||
-l boost_system \
|
||||
@ -22,7 +31,7 @@ LIBS= \
|
||||
|
||||
DEFS=-D__WXGTK__ -DNOPCH
|
||||
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 \
|
||||
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)
|
||||
g++ -c $(CFLAGS) $(WXFLAGS) -DGUI -o $@ $<
|
||||
g++ -c $(CFLAGS) -DGUI -o $@ $<
|
||||
|
||||
obj/%.o: %.cpp $(HEADERS) headers.h.gch
|
||||
g++ -c $(CFLAGS) $(WXFLAGS) -DGUI -o $@ $<
|
||||
g++ -c $(CFLAGS) -DGUI -o $@ $<
|
||||
|
||||
cryptopp/obj/%.o: cryptopp/%.cpp
|
||||
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 bnFalse(0);
|
||||
static const CBigNum bnTrue(1);
|
||||
static const size_t nMaxNumSize = 258;
|
||||
|
||||
|
||||
bool CastToBool(const valtype& vch)
|
||||
@ -53,8 +54,12 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
||||
vector<valtype> altstack;
|
||||
if (pvStackRet)
|
||||
pvStackRet->clear();
|
||||
if (script.size() > 20000)
|
||||
return false;
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
while (pc < pend)
|
||||
{
|
||||
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;
|
||||
if (!script.GetOp(pc, opcode, vchPushValue))
|
||||
return false;
|
||||
if (vchPushValue.size() > 5000)
|
||||
return false;
|
||||
|
||||
if (fExec && opcode <= OP_PUSHDATA4)
|
||||
stack.push_back(vchPushValue);
|
||||
@ -104,19 +111,20 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
||||
// Control
|
||||
//
|
||||
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;
|
||||
|
||||
case OP_VER:
|
||||
case OP_VERIF:
|
||||
case OP_VERNOTIF:
|
||||
{
|
||||
CBigNum bn(VERSION);
|
||||
stack.push_back(bn.getvch());
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
case OP_IF:
|
||||
case OP_NOTIF:
|
||||
case OP_VERIF:
|
||||
case OP_VERNOTIF:
|
||||
{
|
||||
// <expression> if [statements] [else [statements]] endif
|
||||
bool fValue = false;
|
||||
@ -125,11 +133,8 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
||||
if (stack.size() < 1)
|
||||
return false;
|
||||
valtype& vch = stacktop(-1);
|
||||
if (opcode == OP_VERIF || opcode == OP_VERNOTIF)
|
||||
fValue = (CBigNum(VERSION) >= CBigNum(vch));
|
||||
else
|
||||
fValue = CastToBool(vch);
|
||||
if (opcode == OP_NOTIF || opcode == OP_VERNOTIF)
|
||||
if (opcode == OP_NOTIF)
|
||||
fValue = !fValue;
|
||||
stack.pop_back();
|
||||
}
|
||||
@ -163,13 +168,13 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
||||
if (fValue)
|
||||
stack.pop_back();
|
||||
else
|
||||
pc = pend;
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
case OP_RETURN:
|
||||
{
|
||||
pc = pend;
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
@ -383,6 +388,8 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
||||
valtype& vch2 = stacktop(-1);
|
||||
vch1.insert(vch1.end(), vch2.begin(), vch2.end());
|
||||
stack.pop_back();
|
||||
if (stacktop(-1).size() > 5000)
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
@ -504,7 +511,7 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
||||
if (fEqual)
|
||||
stack.pop_back();
|
||||
else
|
||||
pc = pend;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -525,6 +532,8 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
||||
// (in -- out)
|
||||
if (stack.size() < 1)
|
||||
return false;
|
||||
if (stacktop(-1).size() > nMaxNumSize)
|
||||
return false;
|
||||
CBigNum bn(stacktop(-1));
|
||||
switch (opcode)
|
||||
{
|
||||
@ -564,6 +573,9 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
||||
// (x1 x2 -- out)
|
||||
if (stack.size() < 2)
|
||||
return false;
|
||||
if (stacktop(-2).size() > nMaxNumSize ||
|
||||
stacktop(-1).size() > nMaxNumSize)
|
||||
return false;
|
||||
CBigNum bn1(stacktop(-2));
|
||||
CBigNum bn2(stacktop(-1));
|
||||
CBigNum bn;
|
||||
@ -593,13 +605,13 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
||||
break;
|
||||
|
||||
case OP_LSHIFT:
|
||||
if (bn2 < bnZero)
|
||||
if (bn2 < bnZero || bn2 > CBigNum(2048))
|
||||
return false;
|
||||
bn = bn1 << bn2.getulong();
|
||||
break;
|
||||
|
||||
case OP_RSHIFT:
|
||||
if (bn2 < bnZero)
|
||||
if (bn2 < bnZero || bn2 > CBigNum(2048))
|
||||
return false;
|
||||
bn = bn1 >> bn2.getulong();
|
||||
break;
|
||||
@ -625,7 +637,7 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
||||
if (CastToBool(stacktop(-1)))
|
||||
stack.pop_back();
|
||||
else
|
||||
pc = pend;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -635,6 +647,10 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
||||
// (x min max -- out)
|
||||
if (stack.size() < 3)
|
||||
return false;
|
||||
if (stacktop(-3).size() > nMaxNumSize ||
|
||||
stacktop(-2).size() > nMaxNumSize ||
|
||||
stacktop(-1).size() > nMaxNumSize)
|
||||
return false;
|
||||
CBigNum bn1(stacktop(-3));
|
||||
CBigNum bn2(stacktop(-2));
|
||||
CBigNum bn3(stacktop(-1));
|
||||
@ -719,7 +735,7 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
||||
if (fSuccess)
|
||||
stack.pop_back();
|
||||
else
|
||||
pc = pend;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -789,7 +805,7 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
||||
if (fSuccess)
|
||||
stack.pop_back();
|
||||
else
|
||||
pc = pend;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -797,9 +813,21 @@ bool EvalScript(const CScript& script, const CTransaction& txTo, unsigned int nI
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
// Size limits
|
||||
if (stack.size() + altstack.size() > 1000)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if (!vfExec.empty())
|
||||
return false;
|
||||
|
||||
if (pvStackRet)
|
||||
*pvStackRet = stack;
|
||||
return (stack.empty() ? false : CastToBool(stack.back()));
|
||||
|
27
script.h
27
script.h
@ -136,6 +136,20 @@ enum opcodetype
|
||||
OP_CHECKMULTISIG,
|
||||
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
|
||||
OP_SINGLEBYTE_END = 0xF0,
|
||||
@ -276,6 +290,18 @@ inline const char* GetOpName(opcodetype opcode)
|
||||
case OP_CHECKMULTISIG : return "OP_CHECKMULTISIG";
|
||||
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
|
||||
@ -285,7 +311,6 @@ inline const char* GetOpName(opcodetype opcode)
|
||||
case OP_PUBKEYHASH : return "OP_PUBKEYHASH";
|
||||
|
||||
|
||||
|
||||
case OP_INVALIDOPCODE : return "OP_INVALIDOPCODE";
|
||||
default:
|
||||
return "UNKNOWN_OPCODE";
|
||||
|
@ -19,8 +19,8 @@ class CScript;
|
||||
class CDataStream;
|
||||
class CAutoFile;
|
||||
|
||||
static const int VERSION = 304;
|
||||
static const char* pszSubVer = ".0";
|
||||
static const int VERSION = 306;
|
||||
static const char* pszSubVer = "";
|
||||
|
||||
|
||||
|
||||
|
@ -7,7 +7,7 @@ RequestExecutionLevel highest
|
||||
|
||||
# General Symbol Definitions
|
||||
!define REGKEY "SOFTWARE\$(^Name)"
|
||||
!define VERSION 0.3.3
|
||||
!define VERSION 0.3.6
|
||||
!define COMPANY "Bitcoin project"
|
||||
!define URL http://www.bitcoin.org/
|
||||
|
||||
@ -42,12 +42,12 @@ Var StartMenuGroup
|
||||
!insertmacro MUI_LANGUAGE English
|
||||
|
||||
# Installer attributes
|
||||
OutFile bitcoin-0.3.3-win32-setup.exe
|
||||
OutFile bitcoin-0.3.6-win32-setup.exe
|
||||
InstallDir $PROGRAMFILES\Bitcoin
|
||||
CRCCheck on
|
||||
XPStyle on
|
||||
ShowInstDetails show
|
||||
VIProductVersion 0.3.3.0
|
||||
VIProductVersion 0.3.6.0
|
||||
VIAddVersionKey ProductName Bitcoin
|
||||
VIAddVersionKey ProductVersion "${VERSION}"
|
||||
VIAddVersionKey CompanyName "${COMPANY}"
|
||||
|
Loading…
Reference in New Issue
Block a user