diff options
author | Kevin Jacobs <kjacobs@mozilla.com> | 2020-03-10 14:28:14 +0000 |
---|---|---|
committer | Kevin Jacobs <kjacobs@mozilla.com> | 2020-03-10 14:28:14 +0000 |
commit | d8703e74896b5da7926b27f2565690a56594430a (patch) | |
tree | 2a287d549c33cc48621468fecde0f0bbcc40c3de /lib | |
parent | ebe57c1d7c1885a0b1ce151a43d8bf561f5c59c2 (diff) | |
download | nss-hg-d8703e74896b5da7926b27f2565690a56594430a.tar.gz |
Bug 1618915 - Fix UBSAN issue in ssl_ParseSessionTicket r=jcj,bbeurdouche
Differential Revision: https://phabricator.services.mozilla.com/D66130
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ssl/ssl3exthandle.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/ssl/ssl3exthandle.c b/lib/ssl/ssl3exthandle.c index a74006f70..07565ba00 100644 --- a/lib/ssl/ssl3exthandle.c +++ b/lib/ssl/ssl3exthandle.c @@ -1034,7 +1034,9 @@ ssl_ParseSessionTicket(sslSocket *ss, const SECItem *decryptedTicket, PORT_SetError(SEC_ERROR_LIBRARY_FAILURE); return SECFailure; } - parsedTicket->timestamp = (PRTime)temp << 32; + + /* Cast to avoid undefined behavior if the top bit is set. */ + parsedTicket->timestamp = (PRTime)((PRUint64)temp << 32); rv = ssl3_ExtConsumeHandshakeNumber(ss, &temp, 4, &buffer, &len); if (rv != SECSuccess) { PORT_SetError(SEC_ERROR_LIBRARY_FAILURE); |