Limit length of Domain and MessageKey fields.

This commit is contained in:
Arthur Britto
2013-01-16 19:48:22 -08:00
parent 29ead4e3e0
commit 2775d76df3
4 changed files with 28 additions and 7 deletions

View File

@@ -1,4 +1,5 @@
#include "AccountSetTransactor.h"
#include "Config.h"
SETUP_LOG();
@@ -94,15 +95,22 @@ TER AccountSetTransactor::doApply()
// MessageKey
//
if (!mTxn.isFieldPresent(sfMessageKey))
if (mTxn.isFieldPresent(sfMessageKey))
{
nothing();
}
else
{
cLog(lsINFO) << "AccountSet: set message key";
std::vector<unsigned char> vucPublic = mTxn.getFieldVL(sfMessageKey);
mTxnAccount->setFieldVL(sfMessageKey, mTxn.getFieldVL(sfMessageKey));
if (vucPublic.size() > PUBLIC_BYTES_MAX)
{
cLog(lsINFO) << "AccountSet: message key too long";
return telBAD_PUBLIC_KEY;
}
else
{
cLog(lsINFO) << "AccountSet: set message key";
mTxnAccount->setFieldVL(sfMessageKey, vucPublic);
}
}
//
@@ -119,6 +127,12 @@ TER AccountSetTransactor::doApply()
mTxnAccount->makeFieldAbsent(sfDomain);
}
else if (vucDomain.size() > DOMAIN_BYTES_MAX)
{
cLog(lsINFO) << "AccountSet: domain too long";
return telBAD_DOMAIN;
}
else
{
cLog(lsINFO) << "AccountSet: set domain";