From 6bfae955bd7d107adeb534b66cd339ae9ac2b989 Mon Sep 17 00:00:00 2001
From: Jim Meyering <jim@meyering.net>
Date: Sun, 9 Sep 2007 14:48:10 +0000
Subject: [PATCH] * lib/hash.c (hash_initialize): Detect calloc failure.

Reported by Bruno Haible.
---
 ChangeLog  | 5 +++++
 lib/hash.c | 4 +++-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index e68568eaf6..3338c6fe73 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-09-09  Jim Meyering  <jim@meyering.net>
+
+	* lib/hash.c (hash_initialize): Detect calloc failure.
+	Reported by Bruno Haible.
+
 2007-09-09  Bruno Haible  <bruno@clisp.org>
 
 	* lib/canonicalize-lgpl.c (__realpath): Set errno to ENOMEM when
diff --git a/lib/hash.c b/lib/hash.c
index f4ab12f487..f0f481b328 100644
--- a/lib/hash.c
+++ b/lib/hash.c
@@ -1,6 +1,6 @@
 /* hash - hashing table processing.
 
-   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006 Free
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007 Free
    Software Foundation, Inc.
 
    Written by Jim Meyering, 1992.
@@ -576,6 +576,8 @@ hash_initialize (size_t candidate, const Hash_tuning *tuning,
     goto fail;
 
   table->bucket = calloc (table->n_buckets, sizeof *table->bucket);
+  if (table->bucket == NULL)
+    goto fail;
   table->bucket_limit = table->bucket + table->n_buckets;
   table->n_buckets_used = 0;
   table->n_entries = 0;
-- 
2.30.2