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;

Reply via email to