Browse Source

dont trust getBestHeight == 0

miguelfreitas
Miguel Freitas 11 years ago
parent
commit
d1ec27e01a
  1. 4
      libtorrent/src/kademlia/node.cpp
  2. 6
      src/twister.cpp

4
libtorrent/src/kademlia/node.cpp

@ -1092,8 +1092,8 @@ void node_impl::incoming_request(msg const& m, entry& e) @@ -1092,8 +1092,8 @@ void node_impl::incoming_request(msg const& m, entry& e)
return;
}
if (msg_keys[mk_height]->int_value() > getBestHeight() ) {
incoming_error(e, "future messages not allowed");
if (msg_keys[mk_height]->int_value() > getBestHeight() && getBestHeight()) {
incoming_error(e, "height > getBestHeight");
return;
}

6
src/twister.cpp

@ -557,7 +557,7 @@ bool acceptSignedPost(char const *data, int data_size, std::string username, int @@ -557,7 +557,7 @@ bool acceptSignedPost(char const *data, int data_size, std::string username, int
} else if( !validatePostNumberForUser(username, k) ) {
sprintf(errbuf,"too much posts from user '%s' rejecting post",
username.c_str());
} else if( height < 0 || height > getBestHeight() ) {
} else if( height < 0 || (height > getBestHeight() && getBestHeight()) ) {
sprintf(errbuf,"post from future not accepted (height: %d > %d)",
height, getBestHeight());
} else if( msg.size() && msg.size() > 140 ) {
@ -617,7 +617,9 @@ bool validatePostNumberForUser(std::string const &username, int k) @@ -617,7 +617,9 @@ bool validatePostNumberForUser(std::string const &username, int k)
CBlockIndex* pblockindex = mapBlockIndex[hashBlock];
if( k < 0 || k > 2*(getBestHeight() - pblockindex->nHeight) + 10)
if( k < 0 )
return false;
if( getBestHeight() && k > 2*(getBestHeight() - pblockindex->nHeight) + 20)
return false;
return true;

Loading…
Cancel
Save