wmc: xmalloc shouldn't initialize to zero, do that explicitly where needed.
diff --git a/tools/wmc/mcy.y b/tools/wmc/mcy.y
index db4945d..61b7fd1 100644
--- a/tools/wmc/mcy.y
+++ b/tools/wmc/mcy.y
@@ -389,7 +389,7 @@
 /*----------------------------------------------------------------------
  * Helper rules
  */
-token	: tIDENT	{ $$ = xmalloc(sizeof(token_t)); $$->name = $1; }
+token	: tIDENT	{ $$ = xmalloc(sizeof(token_t)); memset($$,0,sizeof(*$$)); $$->name = $1; }
 	| tTOKEN	{ $$ = $1; }
 	;
 
@@ -451,7 +451,10 @@
 {
 	int i;
 	if(!msg)
+	{
 		msg = xmalloc(sizeof(msg_t));
+		memset( msg, 0, sizeof(*msg) );
+	}
 	msg->msgs = xrealloc(msg->msgs, (msg->nmsgs+1) * sizeof(*(msg->msgs)));
 	msg->msgs[msg->nmsgs] = lanmsg;
 	msg->nmsgs++;
@@ -489,7 +492,8 @@
 
 static void add_node(node_e type, void *p)
 {
-	node_t *ndp = (node_t *)xmalloc(sizeof(node_t));
+	node_t *ndp = xmalloc(sizeof(node_t));
+	memset( ndp, 0, sizeof(*ndp) );
 	ndp->type = type;
 	ndp->u.all = p;
 
@@ -601,7 +605,7 @@
 	for(nl = 0; nl < msgtab[0]->nmsgs; nl++)	/* This should be equal for all after check_languages() */
 	{
 		lbp = xmalloc(sizeof(lan_blk_t));
-
+		memset( lbp, 0, sizeof(*lbp) );
 		if(!lblktail)
 		{
 			lblkhead = lblktail = lbp;
diff --git a/tools/wmc/utils.c b/tools/wmc/utils.c
index 6b7769e..c91902d 100644
--- a/tools/wmc/utils.c
+++ b/tools/wmc/utils.c
@@ -148,12 +148,7 @@
     {
 	error("Virtual memory exhausted.\n");
     }
-    /*
-     * We set it to 0.
-     * This is *paramount* because we depend on it
-     * just about everywhere in the rest of the code.
-     */
-    memset(res, 0, size);
+    memset(res, 0x55, size);
     return res;
 }