Module Name: src Committed By: christos Date: Wed Apr 22 18:44:06 UTC 2009
Modified Files: src/lib/libc/db/btree: bt_split.c src/lib/libc/db/hash: hash_buf.c src/lib/libc/db/mpool: mpool.c Log Message: Avoid information leaks by zeroing memory, from FreeBSD (we had done some already) To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/lib/libc/db/btree/bt_split.c cvs rdiff -u -r1.14 -r1.15 src/lib/libc/db/hash/hash_buf.c cvs rdiff -u -r1.18 -r1.19 src/lib/libc/db/mpool/mpool.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/libc/db/btree/bt_split.c diff -u src/lib/libc/db/btree/bt_split.c:1.18 src/lib/libc/db/btree/bt_split.c:1.19 --- src/lib/libc/db/btree/bt_split.c:1.18 Thu Feb 12 01:41:40 2009 +++ src/lib/libc/db/btree/bt_split.c Wed Apr 22 14:44:06 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: bt_split.c,v 1.18 2009/02/12 06:41:40 lukem Exp $ */ +/* $NetBSD: bt_split.c,v 1.19 2009/04/22 18:44:06 christos Exp $ */ /*- * Copyright (c) 1990, 1993, 1994 @@ -37,7 +37,7 @@ #endif #include <sys/cdefs.h> -__RCSID("$NetBSD: bt_split.c,v 1.18 2009/02/12 06:41:40 lukem Exp $"); +__RCSID("$NetBSD: bt_split.c,v 1.19 2009/04/22 18:44:06 christos Exp $"); #include "namespace.h" #include <sys/types.h> @@ -383,7 +383,7 @@ } /* Put the new left page for the split into place. */ - if ((l = (PAGE *)malloc(t->bt_psize)) == NULL) { + if ((l = calloc(1, t->bt_psize)) == NULL) { mpool_put(t->bt_mp, r, 0); return (NULL); } Index: src/lib/libc/db/hash/hash_buf.c diff -u src/lib/libc/db/hash/hash_buf.c:1.14 src/lib/libc/db/hash/hash_buf.c:1.15 --- src/lib/libc/db/hash/hash_buf.c:1.14 Wed Sep 10 13:52:35 2008 +++ src/lib/libc/db/hash/hash_buf.c Wed Apr 22 14:44:06 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: hash_buf.c,v 1.14 2008/09/10 17:52:35 joerg Exp $ */ +/* $NetBSD: hash_buf.c,v 1.15 2009/04/22 18:44:06 christos Exp $ */ /*- * Copyright (c) 1990, 1993, 1994 @@ -37,7 +37,7 @@ #endif #include <sys/cdefs.h> -__RCSID("$NetBSD: hash_buf.c,v 1.14 2008/09/10 17:52:35 joerg Exp $"); +__RCSID("$NetBSD: hash_buf.c,v 1.15 2009/04/22 18:44:06 christos Exp $"); /* * PACKAGE: hash @@ -313,8 +313,10 @@ } /* Check if we are freeing stuff */ if (do_free) { - if (bp->page) + if (bp->page) { + (void)memset(bp->page, 0, hashp->BSIZE); free(bp->page); + } BUF_REMOVE(bp); free(bp); bp = LRU; Index: src/lib/libc/db/mpool/mpool.c diff -u src/lib/libc/db/mpool/mpool.c:1.18 src/lib/libc/db/mpool/mpool.c:1.19 --- src/lib/libc/db/mpool/mpool.c:1.18 Thu Sep 11 08:58:00 2008 +++ src/lib/libc/db/mpool/mpool.c Wed Apr 22 14:44:06 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: mpool.c,v 1.18 2008/09/11 12:58:00 joerg Exp $ */ +/* $NetBSD: mpool.c,v 1.19 2009/04/22 18:44:06 christos Exp $ */ /*- * Copyright (c) 1990, 1993, 1994 @@ -34,7 +34,7 @@ #endif #include <sys/cdefs.h> -__RCSID("$NetBSD: mpool.c,v 1.18 2008/09/11 12:58:00 joerg Exp $"); +__RCSID("$NetBSD: mpool.c,v 1.19 2009/04/22 18:44:06 christos Exp $"); #include "namespace.h" #include <sys/queue.h> @@ -341,7 +341,7 @@ return (bp); } -new: if ((bp = (BKT *)malloc((size_t)(sizeof(BKT) + mp->pagesize))) == NULL) +new: if ((bp = calloc(1, (size_t)(sizeof(BKT) + mp->pagesize))) == NULL) return (NULL); #ifdef STATISTICS ++mp->pagealloc;