summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorjsing <>2019-03-19 16:56:04 +0000
committerjsing <>2019-03-19 16:56:04 +0000
commit9ae692347a234e6733cfcda5ecaaa6d4308eb627 (patch)
treec7c8d31aaad42ee7c2dfaeca9df96e139d09d847 /src/lib
parent962b1b0ed5b16b038f5d40e6fb7016cd60a6eaac (diff)
downloadopenbsd-9ae692347a234e6733cfcda5ecaaa6d4308eb627.tar.gz
openbsd-9ae692347a234e6733cfcda5ecaaa6d4308eb627.tar.bz2
openbsd-9ae692347a234e6733cfcda5ecaaa6d4308eb627.zip
Avoid an internal 2 byte overread in ssl_sigalgs().
Found by oss-fuzz, fixes issue #13797. ok beck@ tb@
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libssl/ssl_sigalgs.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/src/lib/libssl/ssl_sigalgs.c b/src/lib/libssl/ssl_sigalgs.c
index fdea93e1b0..3a7f6d6687 100644
--- a/src/lib/libssl/ssl_sigalgs.c
+++ b/src/lib/libssl/ssl_sigalgs.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_sigalgs.c,v 1.16 2019/01/24 00:07:58 beck Exp $ */ 1/* $OpenBSD: ssl_sigalgs.c,v 1.17 2019/03/19 16:56:04 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2018-2019 Bob Beck <beck@openbsd.org> 3 * Copyright (c) 2018-2019 Bob Beck <beck@openbsd.org>
4 * 4 *
@@ -209,16 +209,11 @@ ssl_sigalg_lookup(uint16_t sigalg)
209const struct ssl_sigalg * 209const struct ssl_sigalg *
210ssl_sigalg(uint16_t sigalg, uint16_t *values, size_t len) 210ssl_sigalg(uint16_t sigalg, uint16_t *values, size_t len)
211{ 211{
212 const struct ssl_sigalg *sap;
213 int i; 212 int i;
214 213
215 for (i = 0; i < len; i++) { 214 for (i = 0; i < len; i++) {
216 if (values[i] == sigalg) 215 if (values[i] == sigalg)
217 break; 216 return ssl_sigalg_lookup(sigalg);
218 }
219 if (values[i] == sigalg) {
220 if ((sap = ssl_sigalg_lookup(sigalg)) != NULL)
221 return sap;
222 } 217 }
223 218
224 return NULL; 219 return NULL;