Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/15722)
int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written)
{
- if (dlen == 0) {
- /* no error */
- if (written != NULL)
- *written = 0;
- return 1;
- }
- return bio_write_intern(b, data, dlen, written) > 0;
+ return bio_write_intern(b, data, dlen, written) > 0
+ || (b != NULL && dlen == 0); /* order is important for *written */
}
int BIO_puts(BIO *b, const char *buf)