From: Stephan Bosch Date: Mon, 2 Sep 2019 20:48:30 +0000 (+0200) Subject: lib: istream-base64-decoder - Use i_stream_try_alloc() properly. X-Git-Tag: 2.3.9~213 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=678258e8b069e88786696ed20a820b4c5b32ccec;p=thirdparty%2Fdovecot%2Fcore.git lib: istream-base64-decoder - Use i_stream_try_alloc() properly. --- diff --git a/src/lib/istream-base64-decoder.c b/src/lib/istream-base64-decoder.c index c6d07f24b8..50a45c8d41 100644 --- a/src/lib/istream-base64-decoder.c +++ b/src/lib/istream-base64-decoder.c @@ -40,20 +40,17 @@ i_stream_base64_try_decode_block(struct base64_decoder_istream *bstream) { struct istream_private *stream = &bstream->istream; const unsigned char *data; - size_t size, avail, buffer_avail, pos; + size_t size, avail, pos; buffer_t buf; data = i_stream_get_data(stream->parent, &size); if (size == 0) return 0; - i_stream_try_alloc(stream, (size+3)/4*3, &avail); - buffer_avail = stream->buffer_size - stream->pos; - if (buffer_avail == 0) + if (!i_stream_try_alloc(stream, (size+3)/4*3, &avail)) return -2; - buffer_create_from_data(&buf, stream->w_buffer + stream->pos, - buffer_avail); + buffer_create_from_data(&buf, stream->w_buffer + stream->pos, avail); if (base64_decode_more(&bstream->decoder, data, size, &pos, &buf) < 0) { io_stream_set_error(&stream->iostream, "Invalid base64 data: 0x%s",