From: Andy Polyakov Date: Tue, 23 Aug 2016 11:31:36 +0000 (+0200) Subject: evp/bio_enc.c: stop using pointer arithmetic for error detection. X-Git-Tag: OpenSSL_1_1_0~52 X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=9e421962e1cd58e302ebd8aca5d5a44198194243 evp/bio_enc.c: stop using pointer arithmetic for error detection. Thanks to David Benjamin for reporting this. Reviewed-by: Rich Salz Reviewed-by: Richard Levitte --- diff --git a/crypto/evp/bio_enc.c b/crypto/evp/bio_enc.c index e3aaadb11e..5a3beef97f 100644 --- a/crypto/evp/bio_enc.c +++ b/crypto/evp/bio_enc.c @@ -148,9 +148,12 @@ static int enc_read(BIO *b, char *out, int outl) if (ctx->read_start == ctx->read_end) { /* time to read more data */ ctx->read_end = ctx->read_start = &(ctx->buf[BUF_OFFSET]); - ctx->read_end += BIO_read(next, ctx->read_start, ENC_BLOCK_SIZE); + i = BIO_read(next, ctx->read_start, ENC_BLOCK_SIZE); + if (i > 0) + ctx->read_end += i; + } else { + i = ctx->read_end - ctx->read_start; } - i = ctx->read_end - ctx->read_start; if (i <= 0) { /* Should be continue next time we are called? */