svn commit: r324444 - head/sys/kern

Alan Cox alc at FreeBSD.org
Mon Oct 9 18:19:07 UTC 2017


Author: alc
Date: Mon Oct  9 18:19:06 2017
New Revision: 324444
URL: https://svnweb.freebsd.org/changeset/base/324444

Log:
  The recent change to initialization of blists (r324420) relied on '-1'
  appearing only where the code explicitly set it, but since much of the
  data was not initialized, '-1' appeared other places too, and led to
  panics.  Clear the allocated data before initializing nonzero values by
  allocating with M_ZERO.
  
  Submitted by:	Doug Moore <dougm at rice.edu>
  Reported by:	Oleg V. Nauman <oleg at theweb.org.ua>, cy
  Tested by:	Oleg V. Nauman <oleg at theweb.org.ua>
  MFC after:	1 week
  X-MFC with:	r324420
  Differential Revision:	https://reviews.freebsd.org/D12627

Modified:
  head/sys/kern/subr_blist.c

Modified: head/sys/kern/subr_blist.c
==============================================================================
--- head/sys/kern/subr_blist.c	Mon Oct  9 18:00:40 2017	(r324443)
+++ head/sys/kern/subr_blist.c	Mon Oct  9 18:19:06 2017	(r324444)
@@ -248,7 +248,8 @@ blist_create(daddr_t blocks, int flags)
 		nodes += last_block + 1;
 		last_block /= BLIST_META_RADIX;
 	}
-	bl = malloc(offsetof(struct blist, bl_root[nodes]), M_SWAP, flags);
+	bl = malloc(offsetof(struct blist, bl_root[nodes]), M_SWAP, flags |
+	    M_ZERO);
 	if (bl == NULL)
 		return (NULL);
 


More information about the svn-src-all mailing list