This resolves an outstanding "TODO" item.
Reviewed-by: Hugo Landau <hlandau@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/18132)
if (ret <= OSSL_RECORD_RETURN_RETRY) {
rb->left = left;
- if (rl->mode & SSL_MODE_RELEASE_BUFFERS && !rl->isdtls)
+ if ((rl->mode & SSL_MODE_RELEASE_BUFFERS) != 0 && !rl->isdtls)
if (len + left == 0)
rlayer_release_read_buffer(rl);
return ret;
rl->num_released++;
+ if (rl->curr_rec == rl->num_released
+ && (rl->mode & SSL_MODE_RELEASE_BUFFERS) != 0
+ && SSL3_BUFFER_get_left(&rl->rbuf) == 0)
+ rlayer_release_read_buffer(rl);
+
return OSSL_RECORD_RETURN_SUCCESS;
}
/* We must have read empty records. Get more data */
goto start;
}
- /* TODO(RECLAYER): FIX ME */
-#if 0
- if (!peek && curr_rec == s->rlayer.num_recs
- && (s->mode & SSL_MODE_RELEASE_BUFFERS)
- && SSL3_BUFFER_get_left(rbuf) == 0)
- ssl3_release_read_buffer(s);
-#endif
*readbytes = totalbytes;
return 1;
}