All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andreas Dilger <adilger@turbolabs.com>
To: =?unknown-8bit?Q?Ren=E9?= Scharfe <l.s.r@web.de>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linus Torvalds <torvalds@transmeta.com>,
	Alan Cox <alan@redhat.com>
Subject: Re: [PATCH] random.c bugfix
Date: Sat, 27 Oct 2001 00:21:42 -0600	[thread overview]
Message-ID: <20011027002142.D23590@turbolinux.com> (raw)
In-Reply-To: <m15xL0J-007qTxC@smtp.web.de>
In-Reply-To: <m15xL0J-007qTxC@smtp.web.de>

On Oct 27, 2001  06:21 +0200, Ren? Scharfe wrote:
> there's a bug in random.c, I think. The third argument of
> extract_entropy() is supposed to be the number of _bytes_ to extract,
> while nwords contains the number of _bytes_ we want. This seems to lead
                                       ^^^^^ words, I think you mean ;-)
> us to transfer n bytes of entropy and credit for n*4 bytes.

OK, my bad.  At least the random variable-name cleanups let you SEE where
we are supposed to be using word sizes and byte sizes.  Even you were
confused about it ;-)

> --- linux-2.4.14-pre2/drivers/char/random.c	Fri Oct 26 23:07:16 2001
> +++ linux-2.4.14-pre2-rs/drivers/char/random.c	Sat Oct 27 05:36:23 2001
> @@ -1253,7 +1253,7 @@
>  			  r == sec_random_state ? "secondary" : "unknown",
>  			  r->entropy_count, nbytes * 8);
>  
> -		extract_entropy(random_state, tmp, nwords, 0);
> +		extract_entropy(random_state, tmp, nwords * 4, 0);
>  		add_entropy_words(r, tmp, nwords);
>  		credit_entropy_store(r, nwords * 32);
>  	}

The patch looks correct, though.

> The rest of the patch is just there for consistency and because it just
> looks better to me. Those sizeof()s were introduced in kernel 2.4.13, I
> just can't imagine why. Care to explain anyone?

> @@ -1260,9 +1260,9 @@
>  	if (r->extract_count > 1024) {
>  		DEBUG_ENT("reseeding %s with %d from primary\n",
>  			  r == sec_random_state ? "secondary" : "unknown",
> -			  sizeof(tmp) * 8);
> -		extract_entropy(random_state, tmp, sizeof(tmp), 0);
> -		add_entropy_words(r, tmp, sizeof(tmp) / 4);
> +			  TMP_BUF_SIZE * 32);
> +		extract_entropy(random_state, tmp, TMP_BUF_SIZE * 4, 0);
> +		add_entropy_words(r, tmp, TMP_BUF_SIZE);
>  		r->extract_count = 0;
>  	}
>  }

Well, this is a matter of taste.  With my code, it is correct regardless
of how tmp is declared, while with your code you assume tmp is TMP_BUF_SIZE
words, and that it is declared with a 4-byte type.  Both ways are resolved
at compile time, so using "sizeof(tmp)/4" or "sizeof(tmp)*8" doesn't add
any run-time overhead.

I don't have a strong opinion either way, if Linus and/or Alan have a
preference to do it one way or the other.

Cheers, Andreas
--
Andreas Dilger  \ "If a man ate a pound of pasta and a pound of antipasto,
                 \  would they cancel out, leaving him still hungry?"
http://www-mddsp.enel.ucalgary.ca/People/adilger/               -- Dogbert


  reply	other threads:[~2001-10-27  6:22 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-10-27  4:21 [PATCH] random.c bugfix René Scharfe
2001-10-27  6:21 ` Andreas Dilger [this message]
2001-10-27  6:35   ` Robert Love
2001-10-28 23:57   ` Horst von Brand
2001-10-29  5:37     ` Andreas Dilger
2001-10-29 16:15       ` Horst von Brand
2001-10-29 16:58         ` Oliver Xymoron
2001-10-29 23:39           ` Andreas Dilger
2001-10-30  0:23             ` Oliver Xymoron
2001-10-30  3:50               ` Andreas Dilger
2001-10-30 16:07                 ` Theodore Tso
2001-10-31  6:19                   ` Andreas Dilger
2001-10-31 14:42                     ` Oliver Xymoron
2001-10-30  4:49               ` Andreas Dilger
2001-10-29  5:46     ` [PATCH] MAJOR " Andreas Dilger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20011027002142.D23590@turbolinux.com \
    --to=adilger@turbolabs.com \
    --cc=alan@redhat.com \
    --cc=l.s.r@web.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@transmeta.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.