Disallow invalid flags on OfferCreate transactions.

This commit is contained in:
Arthur Britto
2012-11-30 17:12:51 -08:00
parent 45841edb7d
commit 07a3eafd8a
2 changed files with 10 additions and 3 deletions

View File

@@ -244,8 +244,8 @@ TER OfferCreateTransactor::takeOffers(
TER OfferCreateTransactor::doApply()
{
Log(lsWARNING) << "doOfferCreate> " << mTxn.getJson(0);
const uint32 txFlags = mTxn.getFlags();
const bool bPassive = isSetBit(txFlags, tfPassive);
const uint32 uTxFlags = mTxn.getFlags();
const bool bPassive = isSetBit(uTxFlags, tfPassive);
STAmount saTakerPays = mTxn.getFieldAmount(sfTakerPays);
STAmount saTakerGets = mTxn.getFieldAmount(sfTakerGets);
@@ -273,7 +273,13 @@ TER OfferCreateTransactor::doApply()
uint64 uOwnerNode;
uint64 uBookNode;
if (bHaveExpiration && !uExpiration)
if (uTxFlags & tfOfferCreateMask)
{
Log(lsINFO) << "doOfferCreate: Malformed transaction: Invalid flags set.";
return temINVALID_FLAG;
}
else if (bHaveExpiration && !uExpiration)
{
Log(lsWARNING) << "doOfferCreate: Malformed offer: bad expiration";