crypto/testmgr: use get_random_u32_inclusive() when possible

JIRA: https://issues.redhat.com/browse/RHEL-3646

Conflicts:
- only crypto/testmgr.c to be able to apply later follow-up
  f900fde28883 ("crypto: testmgr - fix RNG performance in fuzz tests")

commit e8a533cbeb79809206f8724e89961e0079508c3c
Author: Jason A. Donenfeld <Jason@zx2c4.com>
Date:   Sun Oct 9 20:44:02 2022 -0600

    treewide: use get_random_u32_inclusive() when possible

    These cases were done with this Coccinelle:

    @@
    expression H;
    expression L;
    @@
    - (get_random_u32_below(H) + L)
    + get_random_u32_inclusive(L, H + L - 1)

    @@
    expression H;
    expression L;
    expression E;
    @@
      get_random_u32_inclusive(L,
      H
    - + E
    - - E
      )

    @@
    expression H;
    expression L;
    expression E;
    @@
      get_random_u32_inclusive(L,
      H
    - - E
    - + E
      )

    @@
    expression H;
    expression L;
    expression E;
    expression F;
    @@
      get_random_u32_inclusive(L,
      H
    - - E
      + F
    - + E
      )

    @@
    expression H;
    expression L;
    expression E;
    expression F;
    @@
      get_random_u32_inclusive(L,
      H
    - + E
      + F
    - - E
      )

    And then subsequently cleaned up by hand, with several automatic cases
    rejected if it didn't make sense contextually.

    Reviewed-by: Kees Cook <keescook@chromium.org>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> # for infiniband
    Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>

Signed-off-by: Ivan Vecera <ivecera@redhat.com>
This commit is contained in:
Ivan Vecera 2023-09-13 18:47:02 +02:00
parent cf6ddd8a3f
commit 2f9aed229d
1 changed files with 5 additions and 5 deletions

View File

@ -965,11 +965,11 @@ static char *generate_random_sgl_divisions(struct test_sg_division *divs,
if (div == &divs[max_divs - 1] || get_random_u32_below(2) == 0)
this_len = remaining;
else
this_len = 1 + get_random_u32_below(remaining);
this_len = get_random_u32_inclusive(1, remaining);
div->proportion_of_total = this_len;
if (get_random_u32_below(4) == 0)
div->offset = (PAGE_SIZE - 128) + get_random_u32_below(128);
div->offset = get_random_u32_inclusive(PAGE_SIZE - 128, PAGE_SIZE - 1);
else if (get_random_u32_below(2) == 0)
div->offset = get_random_u32_below(32);
else
@ -1097,12 +1097,12 @@ static void generate_random_testvec_config(struct testvec_config *cfg,
}
if (get_random_u32_below(2) == 0) {
cfg->iv_offset = 1 + get_random_u32_below(MAX_ALGAPI_ALIGNMASK);
cfg->iv_offset = get_random_u32_inclusive(1, MAX_ALGAPI_ALIGNMASK);
p += scnprintf(p, end - p, " iv_offset=%u", cfg->iv_offset);
}
if (get_random_u32_below(2) == 0) {
cfg->key_offset = 1 + get_random_u32_below(MAX_ALGAPI_ALIGNMASK);
cfg->key_offset = get_random_u32_inclusive(1, MAX_ALGAPI_ALIGNMASK);
p += scnprintf(p, end - p, " key_offset=%u", cfg->key_offset);
}
@ -1656,7 +1656,7 @@ static void generate_random_hash_testvec(struct shash_desc *desc,
if (maxkeysize) {
vec->ksize = maxkeysize;
if (get_random_u32_below(4) == 0)
vec->ksize = 1 + get_random_u32_below(maxkeysize);
vec->ksize = get_random_u32_inclusive(1, maxkeysize);
generate_random_bytes((u8 *)vec->key, vec->ksize);
vec->setkey_error = crypto_shash_setkey(desc->tfm, vec->key,