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 <do...@rice.edu>
  Reported by:  Oleg V. Nauman <o...@theweb.org.ua>, cy
  Tested by:    Oleg V. Nauman <o...@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);
 
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to