From: Tomas Mraz Date: Mon, 27 Sep 2021 07:45:31 +0000 (+0200) Subject: BIO_ctrl: Avoid spurious error being raised on NULL bio parameter X-Git-Tag: openssl-3.2.0-alpha1~3508 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=398ae8231650c4bd8ddff0e5efd38233c23b1ca0;p=thirdparty%2Fopenssl.git BIO_ctrl: Avoid spurious error being raised on NULL bio parameter Some of the functions are being called on NULL bio with the expectation that such call will not raise an error. Fixes #16681 Reviewed-by: Paul Dale Reviewed-by: Shane Lontis (Merged from https://github.com/openssl/openssl/pull/16686) --- diff --git a/crypto/bio/bio_lib.c b/crypto/bio/bio_lib.c index 25df70f7608..b5454f14b24 100644 --- a/crypto/bio/bio_lib.c +++ b/crypto/bio/bio_lib.c @@ -563,10 +563,8 @@ long BIO_ctrl(BIO *b, int cmd, long larg, void *parg) { long ret; - if (b == NULL) { - ERR_raise(ERR_LIB_BIO, ERR_R_PASSED_NULL_PARAMETER); + if (b == NULL) return -1; - } if (b->method == NULL || b->method->ctrl == NULL) { ERR_raise(ERR_LIB_BIO, BIO_R_UNSUPPORTED_METHOD); return -2; @@ -591,10 +589,8 @@ long BIO_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp) { long ret; - if (b == NULL) { - ERR_raise(ERR_LIB_BIO, ERR_R_PASSED_NULL_PARAMETER); + if (b == NULL) return -2; - } if (b->method == NULL || b->method->callback_ctrl == NULL || cmd != BIO_CTRL_SET_CALLBACK) { ERR_raise(ERR_LIB_BIO, BIO_R_UNSUPPORTED_METHOD); @@ -655,10 +651,8 @@ BIO *BIO_pop(BIO *b) { BIO *ret; - if (b == NULL) { - ERR_raise(ERR_LIB_BIO, ERR_R_PASSED_NULL_PARAMETER); + if (b == NULL) return NULL; - } ret = b->next_bio; BIO_ctrl(b, BIO_CTRL_POP, 0, b); @@ -728,10 +722,8 @@ BIO *BIO_find_type(BIO *bio, int type) BIO *BIO_next(BIO *b) { - if (b == NULL) { - ERR_raise(ERR_LIB_BIO, ERR_R_PASSED_NULL_PARAMETER); + if (b == NULL) return NULL; - } return b->next_bio; }