From: Chong Yidong <cyd@stupidchicken.com>
Date: Sun, 28 Feb 2010 14:19:31 +0000 (-0500)
Subject: Fix use of unitialized memory.
X-Git-Tag: emacs-pretest-23.1.94~25^2~12
X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=412c01b6f0ab2661d5161062eb1d988482ae0d7d;p=emacs.git

Fix use of unitialized memory.

* charset.c (load_charset_map_from_file)
(load_charset_map_from_vector): Zero out allocated
charset_map_entries before using them.
---

diff --git a/src/ChangeLog b/src/ChangeLog
index 6cafe2f60a5..f0a620b7b99 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
+2010-02-28  Chong Yidong  <cyd@stupidchicken.com>
+
+	* charset.c (load_charset_map_from_file)
+	(load_charset_map_from_vector): Zero out allocated
+	charset_map_entries before using them.
+
 2010-02-27  Andreas Schwab  <schwab@linux-m68k.org>
 
 	* w32uniscribe.c (uniscribe_check_otf): Fix length check.
diff --git a/src/charset.c b/src/charset.c
index 1db9ec17ae7..125c9131687 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -531,6 +531,7 @@ load_charset_map_from_file (charset, mapfile, control_flag)
   SAFE_ALLOCA (head, struct charset_map_entries *,
 	       sizeof (struct charset_map_entries));
   entries = head;
+  bzero (entries, sizeof (struct charset_map_entries));
 
   n_entries = 0;
   eof = 0;
@@ -557,6 +558,7 @@ load_charset_map_from_file (charset, mapfile, control_flag)
 	  SAFE_ALLOCA (entries->next, struct charset_map_entries *,
 		       sizeof (struct charset_map_entries));
 	  entries = entries->next;
+	  bzero (entries, sizeof (struct charset_map_entries));
 	}
       idx = n_entries % 0x10000;
       entries->entry[idx].from = from;
@@ -596,6 +598,7 @@ load_charset_map_from_vector (charset, vec, control_flag)
   SAFE_ALLOCA (head, struct charset_map_entries *,
 	       sizeof (struct charset_map_entries));
   entries = head;
+  bzero (entries, sizeof (struct charset_map_entries));
 
   n_entries = 0;
   for (i = 0; i < len; i += 2)
@@ -632,6 +635,7 @@ load_charset_map_from_vector (charset, vec, control_flag)
 	  SAFE_ALLOCA (entries->next, struct charset_map_entries *,
 		       sizeof (struct charset_map_entries));
 	  entries = entries->next;
+	  bzero (entries, sizeof (struct charset_map_entries));
 	}
       idx = n_entries % 0x10000;
       entries->entry[idx].from = from;