Browse Source

tally: don't use SIZE_MAX.

Turns out it's not standard (thanks Samba build farm!)
And the previous test had a hole in it anyway.  This one is more conservative.
Rusty Russell 14 years ago
parent
commit
af7a902d74
1 changed files with 2 additions and 2 deletions
  1. 2 2
      ccan/tally/tally.c

+ 2 - 2
ccan/tally/tally.c

@@ -27,8 +27,8 @@ struct tally *tally_new(unsigned buckets)
 	if (buckets == 0)
 		buckets = 1;
 
-	/* Check for overflow. */
-	if (buckets && SIZE_MAX / buckets < sizeof(tally->counts[0]))
+	/* Overly cautious check for overflow. */
+	if (sizeof(*tally) * buckets / sizeof(*tally) != buckets)
 		return NULL;
 	tally = malloc(sizeof(*tally) + sizeof(tally->counts[0])*(buckets-1));
 	if (tally) {