check for zero'd rc

pull/1038/head
Jeff Becker 4 years ago
parent d9297a4907
commit a17b5f25b5
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05

@ -43,7 +43,11 @@ namespace llarp
found = rc;
}
valuesFound.clear();
valuesFound.emplace_back(found);
if(not found.pubkey.IsZero())
{
valuesFound.resize(1);
valuesFound[0] = found;
}
}
routing::DHTMessage msg;
msg.M.emplace_back(new GotRouterMessage(parent->OurKey(), whoasked.txid,

@ -167,7 +167,12 @@ namespace llarp
return false;
}
RouterContact found;
const Key_t k{K};
if(K.IsZero())
{
llarp::LogError("invalid FRM from ", From, "K is zero");
return false;
}
const Key_t k(K);
if(exploritory)
return dht.HandleExploritoryRouterLookup(From, txid, K, replies);
if(!dht.GetRouter()->ConnectionToRouterAllowed(K))

@ -113,6 +113,8 @@ namespace llarp
LogDebug("got ", R.size(), " results in GRM for lookup");
if(R.size() == 0)
dht.pendingRouterLookups().NotFound(owner, K);
else if(R[0].pubkey.IsZero())
return false;
else
dht.pendingRouterLookups().Found(owner, R[0].pubkey, R);
return true;

@ -733,11 +733,11 @@ namespace llarp
{
if(msg->R.size())
{
auto* job = new llarp_async_verify_rc;
job->nodedb = Router()->nodedb();
job->cryptoworker = Router()->threadpool();
job->diskworker = Router()->diskworker();
job->logic = Router()->logic();
llarp_async_verify_rc* job = new llarp_async_verify_rc();
job->nodedb = Router()->nodedb();
job->cryptoworker = Router()->threadpool();
job->diskworker = Router()->diskworker();
job->logic = Router()->logic();
job->hook = std::bind(&Endpoint::HandleVerifyGotRouter, this, msg,
std::placeholders::_1);
job->rc = msg->R[0];

Loading…
Cancel
Save