Restructure vec_idx loops

This replaces empty for loops with while loops to make the code easier
to read.

Reviewed-by: Tom Caputi <tcaputi@datto.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reported-by: github.com/dcb314
Signed-off-by: Richard Laager <rlaager@wiktel.com>
Closes #6681
Closes #6682
Closes #6683
Closes #8623
This commit is contained in:
Richard Laager 2019-04-16 14:34:06 -05:00 committed by Brian Behlendorf
parent 50478c6dad
commit 59f6594cf6
3 changed files with 48 additions and 42 deletions

View File

@ -266,7 +266,7 @@ sha1_digest_update_uio(SHA1_CTX *sha1_ctx, crypto_data_t *data)
{ {
off_t offset = data->cd_offset; off_t offset = data->cd_offset;
size_t length = data->cd_length; size_t length = data->cd_length;
uint_t vec_idx; uint_t vec_idx = 0;
size_t cur_len; size_t cur_len;
/* we support only kernel buffer */ /* we support only kernel buffer */
@ -277,10 +277,11 @@ sha1_digest_update_uio(SHA1_CTX *sha1_ctx, crypto_data_t *data)
* Jump to the first iovec containing data to be * Jump to the first iovec containing data to be
* digested. * digested.
*/ */
for (vec_idx = 0; vec_idx < data->cd_uio->uio_iovcnt && while (vec_idx < data->cd_uio->uio_iovcnt &&
offset >= data->cd_uio->uio_iov[vec_idx].iov_len; offset >= data->cd_uio->uio_iov[vec_idx].iov_len) {
offset -= data->cd_uio->uio_iov[vec_idx++].iov_len) offset -= data->cd_uio->uio_iov[vec_idx].iov_len;
; vec_idx++;
}
if (vec_idx == data->cd_uio->uio_iovcnt) { if (vec_idx == data->cd_uio->uio_iovcnt) {
/* /*
* The caller specified an offset that is larger than the * The caller specified an offset that is larger than the
@ -329,7 +330,7 @@ sha1_digest_final_uio(SHA1_CTX *sha1_ctx, crypto_data_t *digest,
ulong_t digest_len, uchar_t *digest_scratch) ulong_t digest_len, uchar_t *digest_scratch)
{ {
off_t offset = digest->cd_offset; off_t offset = digest->cd_offset;
uint_t vec_idx; uint_t vec_idx = 0;
/* we support only kernel buffer */ /* we support only kernel buffer */
if (digest->cd_uio->uio_segflg != UIO_SYSSPACE) if (digest->cd_uio->uio_segflg != UIO_SYSSPACE)
@ -339,10 +340,11 @@ sha1_digest_final_uio(SHA1_CTX *sha1_ctx, crypto_data_t *digest,
* Jump to the first iovec containing ptr to the digest to * Jump to the first iovec containing ptr to the digest to
* be returned. * be returned.
*/ */
for (vec_idx = 0; offset >= digest->cd_uio->uio_iov[vec_idx].iov_len && while (vec_idx < digest->cd_uio->uio_iovcnt &&
vec_idx < digest->cd_uio->uio_iovcnt; offset >= digest->cd_uio->uio_iov[vec_idx].iov_len) {
offset -= digest->cd_uio->uio_iov[vec_idx++].iov_len) offset -= digest->cd_uio->uio_iov[vec_idx].iov_len;
; vec_idx++;
}
if (vec_idx == digest->cd_uio->uio_iovcnt) { if (vec_idx == digest->cd_uio->uio_iovcnt) {
/* /*
* The caller specified an offset that is * The caller specified an offset that is
@ -1095,7 +1097,7 @@ sha1_mac_verify_atomic(crypto_provider_handle_t provider,
case CRYPTO_DATA_UIO: { case CRYPTO_DATA_UIO: {
off_t offset = mac->cd_offset; off_t offset = mac->cd_offset;
uint_t vec_idx; uint_t vec_idx = 0;
off_t scratch_offset = 0; off_t scratch_offset = 0;
size_t length = digest_len; size_t length = digest_len;
size_t cur_len; size_t cur_len;
@ -1105,11 +1107,11 @@ sha1_mac_verify_atomic(crypto_provider_handle_t provider,
return (CRYPTO_ARGUMENTS_BAD); return (CRYPTO_ARGUMENTS_BAD);
/* jump to the first iovec containing the expected digest */ /* jump to the first iovec containing the expected digest */
for (vec_idx = 0; while (vec_idx < mac->cd_uio->uio_iovcnt &&
offset >= mac->cd_uio->uio_iov[vec_idx].iov_len && offset >= mac->cd_uio->uio_iov[vec_idx].iov_len) {
vec_idx < mac->cd_uio->uio_iovcnt; offset -= mac->cd_uio->uio_iov[vec_idx].iov_len;
offset -= mac->cd_uio->uio_iov[vec_idx++].iov_len) vec_idx++;
; }
if (vec_idx == mac->cd_uio->uio_iovcnt) { if (vec_idx == mac->cd_uio->uio_iovcnt) {
/* /*
* The caller specified an offset that is * The caller specified an offset that is

View File

@ -292,7 +292,7 @@ sha2_digest_update_uio(SHA2_CTX *sha2_ctx, crypto_data_t *data)
{ {
off_t offset = data->cd_offset; off_t offset = data->cd_offset;
size_t length = data->cd_length; size_t length = data->cd_length;
uint_t vec_idx; uint_t vec_idx = 0;
size_t cur_len; size_t cur_len;
/* we support only kernel buffer */ /* we support only kernel buffer */
@ -303,10 +303,11 @@ sha2_digest_update_uio(SHA2_CTX *sha2_ctx, crypto_data_t *data)
* Jump to the first iovec containing data to be * Jump to the first iovec containing data to be
* digested. * digested.
*/ */
for (vec_idx = 0; vec_idx < data->cd_uio->uio_iovcnt && while (vec_idx < data->cd_uio->uio_iovcnt &&
offset >= data->cd_uio->uio_iov[vec_idx].iov_len; offset >= data->cd_uio->uio_iov[vec_idx].iov_len) {
offset -= data->cd_uio->uio_iov[vec_idx++].iov_len) offset -= data->cd_uio->uio_iov[vec_idx].iov_len;
; vec_idx++;
}
if (vec_idx == data->cd_uio->uio_iovcnt) { if (vec_idx == data->cd_uio->uio_iovcnt) {
/* /*
* The caller specified an offset that is larger than the * The caller specified an offset that is larger than the
@ -353,7 +354,7 @@ sha2_digest_final_uio(SHA2_CTX *sha2_ctx, crypto_data_t *digest,
ulong_t digest_len, uchar_t *digest_scratch) ulong_t digest_len, uchar_t *digest_scratch)
{ {
off_t offset = digest->cd_offset; off_t offset = digest->cd_offset;
uint_t vec_idx; uint_t vec_idx = 0;
/* we support only kernel buffer */ /* we support only kernel buffer */
if (digest->cd_uio->uio_segflg != UIO_SYSSPACE) if (digest->cd_uio->uio_segflg != UIO_SYSSPACE)
@ -363,10 +364,11 @@ sha2_digest_final_uio(SHA2_CTX *sha2_ctx, crypto_data_t *digest,
* Jump to the first iovec containing ptr to the digest to * Jump to the first iovec containing ptr to the digest to
* be returned. * be returned.
*/ */
for (vec_idx = 0; offset >= digest->cd_uio->uio_iov[vec_idx].iov_len && while (vec_idx < digest->cd_uio->uio_iovcnt &&
vec_idx < digest->cd_uio->uio_iovcnt; offset >= digest->cd_uio->uio_iov[vec_idx].iov_len) {
offset -= digest->cd_uio->uio_iov[vec_idx++].iov_len) offset -= digest->cd_uio->uio_iov[vec_idx].iov_len;
; vec_idx++;
}
if (vec_idx == digest->cd_uio->uio_iovcnt) { if (vec_idx == digest->cd_uio->uio_iovcnt) {
/* /*
* The caller specified an offset that is * The caller specified an offset that is
@ -1251,7 +1253,7 @@ sha2_mac_verify_atomic(crypto_provider_handle_t provider,
case CRYPTO_DATA_UIO: { case CRYPTO_DATA_UIO: {
off_t offset = mac->cd_offset; off_t offset = mac->cd_offset;
uint_t vec_idx; uint_t vec_idx = 0;
off_t scratch_offset = 0; off_t scratch_offset = 0;
size_t length = digest_len; size_t length = digest_len;
size_t cur_len; size_t cur_len;
@ -1261,11 +1263,11 @@ sha2_mac_verify_atomic(crypto_provider_handle_t provider,
return (CRYPTO_ARGUMENTS_BAD); return (CRYPTO_ARGUMENTS_BAD);
/* jump to the first iovec containing the expected digest */ /* jump to the first iovec containing the expected digest */
for (vec_idx = 0; while (vec_idx < mac->cd_uio->uio_iovcnt &&
offset >= mac->cd_uio->uio_iov[vec_idx].iov_len && offset >= mac->cd_uio->uio_iov[vec_idx].iov_len) {
vec_idx < mac->cd_uio->uio_iovcnt; offset -= mac->cd_uio->uio_iov[vec_idx].iov_len;
offset -= mac->cd_uio->uio_iov[vec_idx++].iov_len) vec_idx++;
; }
if (vec_idx == mac->cd_uio->uio_iovcnt) { if (vec_idx == mac->cd_uio->uio_iovcnt) {
/* /*
* The caller specified an offset that is * The caller specified an offset that is

View File

@ -269,7 +269,7 @@ skein_digest_update_uio(skein_ctx_t *ctx, const crypto_data_t *data)
{ {
off_t offset = data->cd_offset; off_t offset = data->cd_offset;
size_t length = data->cd_length; size_t length = data->cd_length;
uint_t vec_idx; uint_t vec_idx = 0;
size_t cur_len; size_t cur_len;
const uio_t *uio = data->cd_uio; const uio_t *uio = data->cd_uio;
@ -281,10 +281,11 @@ skein_digest_update_uio(skein_ctx_t *ctx, const crypto_data_t *data)
* Jump to the first iovec containing data to be * Jump to the first iovec containing data to be
* digested. * digested.
*/ */
for (vec_idx = 0; vec_idx < uio->uio_iovcnt && while (vec_idx < uio->uio_iovcnt &&
offset >= uio->uio_iov[vec_idx].iov_len; offset >= uio->uio_iov[vec_idx].iov_len) {
offset -= uio->uio_iov[vec_idx++].iov_len) offset -= uio->uio_iov[vec_idx].iov_len;
; vec_idx++;
}
if (vec_idx == uio->uio_iovcnt) { if (vec_idx == uio->uio_iovcnt) {
/* /*
* The caller specified an offset that is larger than the * The caller specified an offset that is larger than the
@ -325,7 +326,7 @@ skein_digest_final_uio(skein_ctx_t *ctx, crypto_data_t *digest,
crypto_req_handle_t req) crypto_req_handle_t req)
{ {
off_t offset = digest->cd_offset; off_t offset = digest->cd_offset;
uint_t vec_idx; uint_t vec_idx = 0;
uio_t *uio = digest->cd_uio; uio_t *uio = digest->cd_uio;
/* we support only kernel buffer */ /* we support only kernel buffer */
@ -335,10 +336,11 @@ skein_digest_final_uio(skein_ctx_t *ctx, crypto_data_t *digest,
/* /*
* Jump to the first iovec containing ptr to the digest to be returned. * Jump to the first iovec containing ptr to the digest to be returned.
*/ */
for (vec_idx = 0; offset >= uio->uio_iov[vec_idx].iov_len && while (vec_idx < uio->uio_iovcnt &&
vec_idx < uio->uio_iovcnt; offset >= uio->uio_iov[vec_idx].iov_len) {
offset -= uio->uio_iov[vec_idx++].iov_len) offset -= uio->uio_iov[vec_idx].iov_len;
; vec_idx++;
}
if (vec_idx == uio->uio_iovcnt) { if (vec_idx == uio->uio_iovcnt) {
/* /*
* The caller specified an offset that is larger than the * The caller specified an offset that is larger than the