Zero rx_multi_lock before initializing it
authorBen Kaduk <kaduk@mit.edu>
Mon, 20 Dec 2010 00:29:17 +0000 (19:29 -0500)
committerDerrick Brashear <shadow@dementia.org>
Mon, 20 Dec 2010 16:56:23 +0000 (08:56 -0800)
FreeBSD's kernel debugging facilities will panic if it detects
an attempt to re-initialize an already-initialized lock, as detected
through some particular bits being nonzero.  Zero everything out
before starting, to prevent this panic.

Change-Id: I7f3abae978d1cbe7eb4908d90c52a0dc46b81e08
Reviewed-on: http://gerrit.openafs.org/3550
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

src/rx/rx_multi.c

index a2e3bdf..c6af54a 100644 (file)
@@ -42,6 +42,7 @@ multi_Init(struct rx_connection **conns, int nConns)
     mh = (struct multi_handle *)osi_Alloc(sizeof(struct multi_handle));
     if (!calls || !ready || !mh)
        osi_Panic("multi_Rx: no mem\n");
+    memset(mh, 0, sizeof(struct multi_handle));
     mh->calls = calls;
     mh->nextReady = mh->firstNotReady = mh->ready = ready;
     mh->nReady = 0;