threads / patch / 5362

patchFix a comparison bug in diff-delta.c

Subject: [PATCH] Fix a comparison bug in diff-delta.c

## tl;dr

3 messages between Aug 23, 2006 and Aug 23, 2006. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Pierre Habouzit· Aug 23, 2006, 09:17 UTC · lore
  (1 << i) < hspace is compared in the `int` space rather that in the
  unsigned one.  the result will be wrong if hspace is between 0x40000000
  and 0x80000000.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
---
  This is a replacement for <1156300368160-git-send-email-madcoder@debian.org>
  avoiding the ugly cast, and using 1u instead.
 diff-delta.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Show changes to diff-delta.c +1 −1
diff --git a/diff-delta.c b/diff-delta.c
index 7da9205..51e2e56 100644
--- a/diff-delta.c
+++ b/diff-delta.c
@@ -152,7 +152,7 @@ struct delta_index * create_delta_index(
 	   initialization in create_delta(). */
 	entries = (bufsize - 1)  / RABIN_WINDOW;
 	hsize = entries / 4;
-	for (i = 4; (1 << i) < hsize && i < 31; i++);
+	for (i = 4; (1u << i) < hsize && i < 31; i++);
 	hsize = 1 << i;
 	hmask = hsize - 1;
 
-- 
1.4.1.1
Johannes Schindelin· Aug 23, 2006, 13:45 UTC · re: Pierre Habouzit · lore

Re: [PATCH] Fix a comparison bug in diff-delta.c

Hi,
On Wed, 23 Aug 2006, Pierre Habouzit wrote:
> -	for (i = 4; (1 << i) < hsize && i < 31; i++);
> +	for (i = 4; (1u << i) < hsize && i < 31; i++);

The variable i never takes on the value 31 (or any higher value), so there is no bug here. Unless you port git to a system where an int has less than 32 bit.

Ciao, Dscho

Pierre Habouzit· Aug 23, 2006, 14:31 UTC · re: Johannes Schindelin · lore

Re: [PATCH] Fix a comparison bug in diff-delta.c

Le mer 23 août 2006 15:45, Johannes Schindelin a écrit :
Show 9 quoted lines
> Hi,
>
> On Wed, 23 Aug 2006, Pierre Habouzit wrote:
> > -	for (i = 4; (1 << i) < hsize && i < 31; i++);
> > +	for (i = 4; (1u << i) < hsize && i < 31; i++);
>
> The variable i never takes on the value 31 (or any higher value), so
> there is no bug here. Unless you port git to a system where an int
> has less than 32 bit.

that remains quite tasteless though, and maybe that patch can be integrated to the "cleanup" series I sent later today.

-- 
·O·  Pierre Habouzit
··O                                                madcoder@debian.org
OOO                                                http://www.madism.org

← back to recent threads