Subject: Re: -current config(8) + files.opencrypto == cryptographic roulette?
To: Rafal Boni <rafal@pobox.com>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: tech-kern
Date: 11/24/2003 12:38:29
In message <200311241913.hAOJDIvZ022577@fearless-vampire-killer.waterside.net>Rafal Boni writes

[ usr.sbin/config newnv() leaves fields uninitialized ]

I'm amazed nobody else saw it -- unless the malloc support routines
changed in the meantime? But why not zero the whole nvlist structure,
as defensive programming:


Index: util.c
===================================================================
RCS file: /cvsroot/src/usr.sbin/config/util.c,v
retrieving revision 1.18
diff -u -r1.18 util.c
--- util.c	19 Sep 2003 06:19:56 -0000	1.18
+++ util.c	24 Nov 2003 20:33:29 -0000
@@ -190,6 +190,7 @@
 		nv = emalloc(sizeof(*nv));
 	else
 		nvfreelist = nv->nv_next;
+	memset(nv, 0, sizeof(*nv));
 	nv->nv_next = next;
 	nv->nv_name = name;
 	if (ptr == NULL)

or even move the memset() into config's emalloc()?  It shouldn't
be that big a factor in the run time.