clear errno and log invalid data

pull/365/head
Jeff Becker 5 years ago
parent 9e9818febe
commit 86098b198f
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05

@ -458,7 +458,10 @@ namespace llarp
auto& itr = m_BlockingWriteQueue->front();
ssize_t result = do_write(itr.buf, itr.bufsz);
if(result == -1)
{
errno = 0;
return;
}
ssize_t dlt = itr.bufsz - result;
if(dlt > 0)
{
@ -601,7 +604,7 @@ namespace llarp
if(_conn->error)
_conn->error(_conn);
}
errno = 0;
}
virtual ssize_t

@ -70,17 +70,20 @@ namespace llarp
PubkeyList_t keys;
if(!result.IsObject())
{
LogWarn("Invalid result: not an object");
handler({}, false);
return false;
}
const auto itr = result.FindMember("keys");
if(itr == result.MemberEnd())
{
LogWarn("Invalid result: no keys member");
handler({}, false);
return false;
}
if(!itr->value.IsArray())
{
LogWarn("Invalid result: keys is not an array");
handler({}, false);
return false;
}
@ -91,12 +94,9 @@ namespace llarp
{
keys.emplace_back();
std::string str = key_itr->GetString();
if(str.size() != Base32DecodeSize(keys.back().size()))
{
keys.pop_back();
}
else if(!Base32Decode(str, keys.back()))
if(!Base32Decode(str, keys.back()))
{
LogWarn("Invalid key: ", str);
keys.pop_back();
}
}

Loading…
Cancel
Save