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