Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Oct 2017 18:19:06 +0000 (UTC)
From:      Alan Cox <alc@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r324444 - head/sys/kern
Message-ID:  <201710091819.v99IJ6oB009917@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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@rice.edu>
  Reported by:	Oleg V. Nauman <oleg@theweb.org.ua>, cy
  Tested by:	Oleg V. Nauman <oleg@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);
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201710091819.v99IJ6oB009917>