summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschwarze <>2021-12-09 15:28:58 +0000
committerschwarze <>2021-12-09 15:28:58 +0000
commitc372cb226df91de2bb6681d3cbd59227d8b06268 (patch)
treebab4eb64e77f673c68011a68feb72fd8085d5606
parentbc9c07cfafa32d8ca950bec3fbcfb549b72962ff (diff)
downloadopenbsd-c372cb226df91de2bb6681d3cbd59227d8b06268.tar.gz
openbsd-c372cb226df91de2bb6681d3cbd59227d8b06268.tar.bz2
openbsd-c372cb226df91de2bb6681d3cbd59227d8b06268.zip
Fix an issue that might possibly turn into a DOS depending on
how application software uses the API function BIO_indent(3): If the caller asks for some output, but not more than some negative number of bytes, give them zero bytes of output rather than drowning them in nearly INT_MAX bytes. OK tb@
-rw-r--r--src/lib/libcrypto/bio/bio_lib.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/lib/libcrypto/bio/bio_lib.c b/src/lib/libcrypto/bio/bio_lib.c
index 05f0258947..85eb0f0c77 100644
--- a/src/lib/libcrypto/bio/bio_lib.c
+++ b/src/lib/libcrypto/bio/bio_lib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: bio_lib.c,v 1.30 2021/10/24 13:46:56 tb Exp $ */ 1/* $OpenBSD: bio_lib.c,v 1.31 2021/12/09 15:28:58 schwarze Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -391,10 +391,10 @@ BIO_gets(BIO *b, char *in, int inl)
391int 391int
392BIO_indent(BIO *b, int indent, int max) 392BIO_indent(BIO *b, int indent, int max)
393{ 393{
394 if (indent < 0)
395 indent = 0;
396 if (indent > max) 394 if (indent > max)
397 indent = max; 395 indent = max;
396 if (indent < 0)
397 indent = 0;
398 while (indent--) 398 while (indent--)
399 if (BIO_puts(b, " ") != 1) 399 if (BIO_puts(b, " ") != 1)
400 return 0; 400 return 0;