From owner-svn-src-projects@FreeBSD.ORG Thu Jul 10 09:17:48 2014 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 99EC03E4; Thu, 10 Jul 2014 09:17:48 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7AD3C2480; Thu, 10 Jul 2014 09:17:48 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6A9HmLI068087; Thu, 10 Jul 2014 09:17:48 GMT (envelope-from markm@svn.freebsd.org) Received: (from markm@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6A9Hkhn068079; Thu, 10 Jul 2014 09:17:46 GMT (envelope-from markm@svn.freebsd.org) Message-Id: <201407100917.s6A9Hkhn068079@svn.freebsd.org> From: Mark Murray Date: Thu, 10 Jul 2014 09:17:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r268486 - projects/random_number_generator/sys/dev/random X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2014 09:17:48 -0000 Author: markm Date: Thu Jul 10 09:17:46 2014 New Revision: 268486 URL: http://svnweb.freebsd.org/changeset/base/268486 Log: Some DES-induced tidy-ups: o Remove unneeded (void *) casts. I can't remember all that well why they were there in the first place (probably misguided lint-fixing). o Fix sizeof(type) -> sizeof(variable). There are still one-or-two to be fixed in a follow-up. Modified: projects/random_number_generator/sys/dev/random/dummy_rng.c projects/random_number_generator/sys/dev/random/fortuna.c projects/random_number_generator/sys/dev/random/ivy.c projects/random_number_generator/sys/dev/random/live_entropy_sources.c projects/random_number_generator/sys/dev/random/random_adaptors.c projects/random_number_generator/sys/dev/random/random_harvestq.c projects/random_number_generator/sys/dev/random/unit_test.c projects/random_number_generator/sys/dev/random/yarrow.c Modified: projects/random_number_generator/sys/dev/random/dummy_rng.c ============================================================================== --- projects/random_number_generator/sys/dev/random/dummy_rng.c Thu Jul 10 09:11:39 2014 (r268485) +++ projects/random_number_generator/sys/dev/random/dummy_rng.c Thu Jul 10 09:17:46 2014 (r268486) @@ -98,9 +98,9 @@ dummy_random_read_phony(uint8_t *buf, u_ /* srandom() is called in kern/init_main.c:proc0_post() */ /* Fill buf[] with random(9) output */ - for (i = 0; i < count; i += sizeof(u_long)) { + for (i = 0; i < count; i += sizeof(randval)) { randval = random(); - size = MIN(count - i, sizeof(u_long)); + size = MIN(count - i, sizeof(randval)); memcpy(buf + i, &randval, (size_t)size); } Modified: projects/random_number_generator/sys/dev/random/fortuna.c ============================================================================== --- projects/random_number_generator/sys/dev/random/fortuna.c Thu Jul 10 09:11:39 2014 (r268485) +++ projects/random_number_generator/sys/dev/random/fortuna.c Thu Jul 10 09:17:46 2014 (r268486) @@ -143,7 +143,7 @@ random_fortuna_init_alg(void) struct sysctl_oid *random_fortuna_o; #endif - memset((void *)(fortuna_start_cache.junk), 0, sizeof(fortuna_start_cache.junk)); + memset(fortuna_start_cache.junk, 0, sizeof(fortuna_start_cache.junk)); fortuna_start_cache.length = 0U; randomdev_hash_init(&fortuna_start_cache.hash); @@ -192,7 +192,7 @@ random_fortuna_init_alg(void) uint128_clear(&fortuna_state.counter.whole); /* F&S - K = 0 */ - memset((void *)(&fortuna_state.key), 0, sizeof(struct randomdev_key)); + memset(&fortuna_state.key, 0, sizeof(fortuna_state.key)); } void @@ -200,7 +200,7 @@ random_fortuna_deinit_alg(void) { mtx_destroy(&random_reseed_mtx); - memset((void *)(&fortuna_state), 0, sizeof(struct fortuna_state)); + memset(&fortuna_state, 0, sizeof(fortuna_state)); } /* F&S - AddRandomEvent() */ @@ -243,7 +243,7 @@ reseed(uint8_t *junk, u_int length) /* F&S - temp = H(K|s) */ randomdev_hash_init(&context); - randomdev_hash_iterate(&context, &fortuna_state.key, sizeof(struct randomdev_key)); + randomdev_hash_iterate(&context, &fortuna_state.key, sizeof(fortuna_state.key)); randomdev_hash_iterate(&context, junk, length); randomdev_hash_finish(&context, temp); @@ -254,8 +254,8 @@ reseed(uint8_t *junk, u_int length) /* F&S - K = hash */ randomdev_encrypt_init(&fortuna_state.key, temp); - memset((void *)temp, 0, sizeof(temp)); - memset((void *)hash, 0, sizeof(hash)); + memset(temp, 0, sizeof(temp)); + memset(hash, 0, sizeof(hash)); /* Unblock the device if it was blocked due to being unseeded */ if (uint128_is_zero(fortuna_state.counter.whole)) @@ -299,7 +299,7 @@ random_fortuna_genrandom(uint8_t *buf, u /* F&S - K = GenerateBlocks(2) */ random_fortuna_genblocks(temp, KEYSIZE/BLOCKSIZE); randomdev_encrypt_init(&fortuna_state.key, temp); - memset((void *)temp, 0, sizeof(temp)); + memset(temp, 0, sizeof(temp)); } /* F&S - RandomData() */ @@ -364,10 +364,10 @@ random_fortuna_read(uint8_t *buf, u_int reseed(s, seedlength); /* Clean up */ - memset((void *)s, 0, seedlength); + memset(s, 0, seedlength); seedlength = 0U; - memset((void *)temp, 0, sizeof(temp)); - memset((void *)&context, 0, sizeof(context)); + memset(temp, 0, sizeof(temp)); + memset(&context, 0, sizeof(context)); } } } @@ -406,11 +406,11 @@ random_fortuna_write(uint8_t *buf, u_int printf("\n"); #endif - memset((void *)(temp), 0, KEYSIZE); + memset(temp, 0, KEYSIZE); randomdev_hash_init(&fortuna_start_cache.hash); reseed(fortuna_start_cache.junk, MIN(PAGE_SIZE, fortuna_start_cache.length)); - memset((void *)(fortuna_start_cache.junk), 0, sizeof(fortuna_start_cache.junk)); + memset(fortuna_start_cache.junk, 0, sizeof(fortuna_start_cache.junk)); mtx_unlock(&random_reseed_mtx); } Modified: projects/random_number_generator/sys/dev/random/ivy.c ============================================================================== --- projects/random_number_generator/sys/dev/random/ivy.c Thu Jul 10 09:11:39 2014 (r268485) +++ projects/random_number_generator/sys/dev/random/ivy.c Thu Jul 10 09:17:46 2014 (r268486) @@ -92,9 +92,9 @@ random_ivy_read(void *buf, u_int c) long *b; u_int count; - KASSERT(c % sizeof(long) == 0, ("partial read %d", c)); + KASSERT(c % sizeof(*b) == 0, ("partial read %d", c)); b = buf; - for (count = c; count > 0; count -= sizeof(long)) { + for (count = c; count > 0; count -= sizeof(*b)) { if (ivy_rng_store(b++) == 0) break; } Modified: projects/random_number_generator/sys/dev/random/live_entropy_sources.c ============================================================================== --- projects/random_number_generator/sys/dev/random/live_entropy_sources.c Thu Jul 10 09:11:39 2014 (r268485) +++ projects/random_number_generator/sys/dev/random/live_entropy_sources.c Thu Jul 10 09:17:46 2014 (r268486) @@ -67,7 +67,7 @@ live_entropy_source_register(struct live KASSERT(rsource != NULL, ("invalid input to %s", __func__)); - lles = malloc(sizeof(struct live_entropy_sources), M_ENTROPY, M_WAITOK); + lles = malloc(sizeof(*lles), M_ENTROPY, M_WAITOK); lles->lles_rsource = rsource; sx_xlock(&les_lock); Modified: projects/random_number_generator/sys/dev/random/random_adaptors.c ============================================================================== --- projects/random_number_generator/sys/dev/random/random_adaptors.c Thu Jul 10 09:11:39 2014 (r268485) +++ projects/random_number_generator/sys/dev/random/random_adaptors.c Thu Jul 10 09:17:46 2014 (r268486) @@ -98,6 +98,14 @@ random_adaptor_choose(void) if (TUNABLE_STR_FETCH("kern.random.active_adaptor", rngs, sizeof(rngs))) { cp = rngs; + /* XXX: FIX!! (DES): + * - fetch tunable once, at boot + * - make sysctl r/w + * - when fetching tunable or processing a sysctl + * write, parse into list of strings so we don't + * have to do it here again and again + * - sysctl read should return a reconstructed string + */ while ((token = strsep(&cp, ",")) != NULL) { LIST_FOREACH(rra, &random_adaptors_list, rra_entries) if (strcmp(rra->rra_name, token) == 0) { @@ -156,7 +164,7 @@ random_adaptor_register(const char *name KASSERT(name != NULL && ra != NULL, ("invalid input to %s", __func__)); - rra = malloc(sizeof(struct random_adaptors), M_ENTROPY, M_WAITOK); + rra = malloc(sizeof(*rra), M_ENTROPY, M_WAITOK); rra->rra_name = name; rra->rra_ra = ra; @@ -237,7 +245,7 @@ random_adaptor_read(struct cdev *dev __u /* The actual read */ - random_buf = (void *)malloc(PAGE_SIZE, M_ENTROPY, M_WAITOK); + random_buf = malloc(PAGE_SIZE, M_ENTROPY, M_WAITOK); while (uio->uio_resid && !error) { c = MIN(uio->uio_resid, PAGE_SIZE); @@ -288,7 +296,7 @@ random_adaptor_write(struct cdev *dev __ sx_slock(&random_adaptors_lock); - random_buf = (void *)malloc(PAGE_SIZE, M_ENTROPY, M_WAITOK); + random_buf = malloc(PAGE_SIZE, M_ENTROPY, M_WAITOK); while (uio->uio_resid > 0) { c = MIN(uio->uio_resid, PAGE_SIZE); Modified: projects/random_number_generator/sys/dev/random/random_harvestq.c ============================================================================== --- projects/random_number_generator/sys/dev/random/random_harvestq.c Thu Jul 10 09:11:39 2014 (r268485) +++ projects/random_number_generator/sys/dev/random/random_harvestq.c Thu Jul 10 09:17:46 2014 (r268486) @@ -324,7 +324,7 @@ random_harvestq_deinit(void) * Command the hash/reseed thread to end and wait for it to finish */ random_kthread_control = -1; - tsleep((void *)&random_kthread_control, 0, "term", 0); + tsleep(&random_kthread_control, 0, "term", 0); mtx_destroy(&harvest_mtx); Modified: projects/random_number_generator/sys/dev/random/unit_test.c ============================================================================== --- projects/random_number_generator/sys/dev/random/unit_test.c Thu Jul 10 09:11:39 2014 (r268485) +++ projects/random_number_generator/sys/dev/random/unit_test.c Thu Jul 10 09:17:46 2014 (r268486) @@ -228,7 +228,7 @@ main(int argc, char *argv[]) for (t = 0; t < NUM_THREADS; t++) { printf("In main: creating thread %ld\n", t); - rc = thrd_create(&threads[t], (t == 0 ? RunHarvester : (t == 1 ? WriteCSPRNG : ReadCSPRNG)), (void *)t); + rc = thrd_create(&threads[t], (t == 0 ? RunHarvester : (t == 1 ? WriteCSPRNG : ReadCSPRNG)), t); if (rc != thrd_success) { printf("ERROR; return code from thrd_create() is %d\n", rc); exit(-1); Modified: projects/random_number_generator/sys/dev/random/yarrow.c ============================================================================== --- projects/random_number_generator/sys/dev/random/yarrow.c Thu Jul 10 09:11:39 2014 (r268485) +++ projects/random_number_generator/sys/dev/random/yarrow.c Thu Jul 10 09:17:46 2014 (r268486) @@ -142,7 +142,7 @@ random_yarrow_init_alg(void) struct sysctl_oid *random_yarrow_o; #endif /* _KERNEL */ - memset((void *)(yarrow_state.start_cache.junk), 0, KEYSIZE); + memset(yarrow_state.start_cache.junk, 0, KEYSIZE); randomdev_hash_init(&yarrow_state.start_cache.hash); /* Set up the lock for the reseed/gate state */ @@ -225,7 +225,7 @@ random_yarrow_deinit_alg(void) { mtx_destroy(&random_reseed_mtx); - memset((void *)(&yarrow_state), 0, sizeof(struct yarrow_state)); + memset(&yarrow_state, 0, sizeof(yarrow_state)); #ifdef _KERNEL sysctl_ctx_free(&random_clist); @@ -376,7 +376,7 @@ reseed(u_int fastslow) /* v[i] #= h(v[0]) */ randomdev_hash_iterate(&context, v[0], KEYSIZE); /* v[i] #= h(i) */ - randomdev_hash_iterate(&context, &i, sizeof(u_int)); + randomdev_hash_iterate(&context, &i, sizeof(i)); /* Return the hashval */ randomdev_hash_finish(&context, v[i]); } @@ -406,10 +406,10 @@ reseed(u_int fastslow) /* 6. Wipe memory of intermediate values */ - memset((void *)v, 0, sizeof(v)); - memset((void *)temp, 0, sizeof(temp)); - memset((void *)hash, 0, sizeof(hash)); - memset((void *)&context, 0, sizeof(context)); + memset(v, 0, sizeof(v)); + memset(temp, 0, sizeof(temp)); + memset(hash, 0, sizeof(hash)); + memset(&context, 0, sizeof(context)); #ifdef RANDOM_RWFILE_WRITE_IS_OK /* Not defined so writes ain't gonna happen */ /* 7. Dump to seed file */ @@ -484,7 +484,7 @@ random_yarrow_write(uint8_t *buf, u_int #endif random_yarrow_process_buffer(yarrow_state.start_cache.junk, KEYSIZE); - memset((void *)(yarrow_state.start_cache.junk), 0, KEYSIZE); + memset(yarrow_state.start_cache.junk, 0, KEYSIZE); mtx_unlock(&random_reseed_mtx); } @@ -501,7 +501,7 @@ generator_gate(void) } randomdev_encrypt_init(&yarrow_state.key, temp); - memset((void *)temp, 0, KEYSIZE); + memset(temp, 0, KEYSIZE); } void