Check for nullptr result of SSLKeyShare::Create(). (Found by fuzzing.) Change-Id: I5685a8ad1fedeb9535216e277c5a1fb1902d3338 Reviewed-on: https://boringssl-review.googlesource.com/27264 Commit-Queue: Matt Braithwaite <mab@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org> Reviewed-by: David Benjamin <davidben@google.com>
diff --git a/ssl/ssl_key_share.cc b/ssl/ssl_key_share.cc index 2a076c3..c7f6f88 100644 --- a/ssl/ssl_key_share.cc +++ b/ssl/ssl_key_share.cc
@@ -248,11 +248,11 @@ UniquePtr<SSLKeyShare> SSLKeyShare::Create(CBS *in) { uint64_t group; - if (!CBS_get_asn1_uint64(in, &group)) { + if (!CBS_get_asn1_uint64(in, &group) || group > 0xffff) { return nullptr; } - UniquePtr<SSLKeyShare> key_share = Create(static_cast<uint64_t>(group)); - if (!key_share->Deserialize(in)) { + UniquePtr<SSLKeyShare> key_share = Create(static_cast<uint16_t>(group)); + if (!key_share || !key_share->Deserialize(in)) { return nullptr; } return key_share;