summaryrefslogtreecommitdiff
path: root/security
diff options
context:
space:
mode:
authorFranklinDM <mrmineshafter17@gmail.com>2023-03-09 14:45:24 +0800
committerMoonchild <moonchild@palemoon.org>2023-03-15 13:01:21 +0100
commit9475b959d79bb5da362a1097de8a5ca98c344110 (patch)
treea33c89749d0ab01143d47bb971a32645fca862a4 /security
parent17e261ae9b53a139c0c37c68ed0dd9b10638ced8 (diff)
downloaduxp-9475b959d79bb5da362a1097de8a5ca98c344110.tar.gz
Issue #2148 - Make Vector not use AlignedStorage for its inline element storage
See Bug 1338374 1/2
Diffstat (limited to 'security')
-rw-r--r--security/certverifier/CTLogVerifier.cpp11
-rw-r--r--security/certverifier/SignedCertificateTimestamp.h3
2 files changed, 12 insertions, 2 deletions
diff --git a/security/certverifier/CTLogVerifier.cpp b/security/certverifier/CTLogVerifier.cpp
index 202e4b4acd..98e1156dd1 100644
--- a/security/certverifier/CTLogVerifier.cpp
+++ b/security/certverifier/CTLogVerifier.cpp
@@ -172,10 +172,17 @@ CTLogVerifier::Verify(const LogEntry& entry,
if (rv != Success) {
return rv;
}
+
+ // sct.extensions may be empty. If it is, sctExtensionsInput will remain in
+ // its default state, which is valid but of length 0.
Input sctExtensionsInput;
rv = BufferToInput(sct.extensions, sctExtensionsInput);
- if (rv != Success) {
- return rv;
+ if (sct.extensions.length() > 0) {
+ rv = sctExtensionsInput.Init(sct.extensions.begin(),
+ sct.extensions.length());
+ if (rv != Success) {
+ return rv;
+ }
}
Buffer serializedData;
diff --git a/security/certverifier/SignedCertificateTimestamp.h b/security/certverifier/SignedCertificateTimestamp.h
index 468ffbaded..e70af60cd5 100644
--- a/security/certverifier/SignedCertificateTimestamp.h
+++ b/security/certverifier/SignedCertificateTimestamp.h
@@ -115,6 +115,9 @@ struct SignedCertificateTimestamp
inline pkix::Result BufferToInput(const Buffer& buffer, pkix::Input& input)
{
+ if (buffer.length() == 0) {
+ return pkix::Result::FATAL_ERROR_LIBRARY_FAILURE;
+ }
return input.Init(buffer.begin(), buffer.length());
}