summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authortb <>2023-03-15 06:14:02 +0000
committertb <>2023-03-15 06:14:02 +0000
commitf42c892d24f684ec57cafee1b0ae14ece515b4f0 (patch)
treed815d1a839f63dcef24b93e7a0b05d53dd6956dd /src/lib
parent14ed158fa9549e635683f2563b9a55d2819664e7 (diff)
downloadopenbsd-f42c892d24f684ec57cafee1b0ae14ece515b4f0.tar.gz
openbsd-f42c892d24f684ec57cafee1b0ae14ece515b4f0.tar.bz2
openbsd-f42c892d24f684ec57cafee1b0ae14ece515b4f0.zip
Streaming BIOs assume they can write to NULL BIOs
At least SMIME_text() relies on this. Pushing an error on the stack trips PKCS7 regress in py-cryptography, so indicate nothing was written instead of throwing an error. Reported by Alex Gaynor a while back ok jsing
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libcrypto/bio/bio_lib.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/lib/libcrypto/bio/bio_lib.c b/src/lib/libcrypto/bio/bio_lib.c
index 31b1e7305d..d14507884b 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.43 2022/12/16 13:41:55 schwarze Exp $ */ 1/* $OpenBSD: bio_lib.c,v 1.44 2023/03/15 06:14:02 tb 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 *
@@ -380,10 +380,9 @@ BIO_write(BIO *b, const void *in, int inl)
380 size_t writebytes = 0; 380 size_t writebytes = 0;
381 int ret; 381 int ret;
382 382
383 if (b == NULL) { 383 /* Not an error. Things like SMIME_text() assume that this succeeds. */
384 BIOerror(ERR_R_PASSED_NULL_PARAMETER); 384 if (b == NULL)
385 return (-1); 385 return (0);
386 }
387 386
388 if (inl <= 0) 387 if (inl <= 0)
389 return (0); 388 return (0);