Ignore negative metadata size in extended handshake

pull/230/merge
Tatsuhiro Tsujikawa 2014-04-30 23:46:27 +09:00
parent 6c3a33d958
commit 4c2ad69a75
1 changed files with 9 additions and 3 deletions

View File

@ -199,9 +199,15 @@ HandshakeExtensionMessage::create(const unsigned char* data, size_t length)
}
}
const Integer* metadataSize = downcast<Integer>(dict->get("metadata_size"));
// Only accept metadata smaller than 1MiB
if(metadataSize && metadataSize->i() <= 1024*1024) {
msg->metadataSize_ = metadataSize->i();
if(metadataSize) {
auto size = metadataSize->i();
// Only accept metadata smaller than 1MiB. Be aware that broken
// clinet can send negative size!
if(size > 0 && size <= 1024*1024) {
msg->metadataSize_ = size;
}
}
return msg;
}