Module Name:    src
Committed By:   snj
Date:           Thu Apr 23 02:38:26 UTC 2009

Modified Files:
        src/lib/libc/db/btree [netbsd-4]: bt_split.c
        src/lib/libc/db/hash [netbsd-4]: hash_buf.c
        src/lib/libc/db/mpool [netbsd-4]: mpool.c

Log Message:
Pull up following revision(s) (requested by christos in ticket #1310):
        lib/libc/db/mpool/mpool.c: revision 1.19
        lib/libc/db/hash/hash_buf.c: revision 1.15
        lib/libc/db/btree/bt_split.c: revision 1.19
Avoid information leaks by zeroing memory, from FreeBSD (we had done some
already)


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.13.16.1 src/lib/libc/db/btree/bt_split.c
cvs rdiff -u -r1.11 -r1.11.10.1 src/lib/libc/db/hash/hash_buf.c
cvs rdiff -u -r1.15 -r1.15.4.1 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.13 src/lib/libc/db/btree/bt_split.c:1.13.16.1
--- src/lib/libc/db/btree/bt_split.c:1.13	Thu Aug  7 16:42:41 2003
+++ src/lib/libc/db/btree/bt_split.c	Thu Apr 23 02:38:26 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: bt_split.c,v 1.13 2003/08/07 16:42:41 agc Exp $	*/
+/*	$NetBSD: bt_split.c,v 1.13.16.1 2009/04/23 02:38:26 snj Exp $	*/
 
 /*-
  * Copyright (c) 1990, 1993, 1994
@@ -37,7 +37,7 @@
 #if 0
 static char sccsid[] = "@(#)bt_split.c	8.9 (Berkeley) 7/26/94";
 #else
-__RCSID("$NetBSD: bt_split.c,v 1.13 2003/08/07 16:42:41 agc Exp $");
+__RCSID("$NetBSD: bt_split.c,v 1.13.16.1 2009/04/23 02:38:26 snj Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -391,7 +391,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.11 src/lib/libc/db/hash/hash_buf.c:1.11.10.1
--- src/lib/libc/db/hash/hash_buf.c:1.11	Sun Jun 20 22:20:14 2004
+++ src/lib/libc/db/hash/hash_buf.c	Thu Apr 23 02:38:26 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: hash_buf.c,v 1.11 2004/06/20 22:20:14 jmc Exp $	*/
+/*	$NetBSD: hash_buf.c,v 1.11.10.1 2009/04/23 02:38:26 snj Exp $	*/
 
 /*-
  * Copyright (c) 1990, 1993, 1994
@@ -41,7 +41,7 @@
 #if 0
 static char sccsid[] = "@(#)hash_buf.c	8.5 (Berkeley) 7/15/94";
 #else
-__RCSID("$NetBSD: hash_buf.c,v 1.11 2004/06/20 22:20:14 jmc Exp $");
+__RCSID("$NetBSD: hash_buf.c,v 1.11.10.1 2009/04/23 02:38:26 snj Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -332,8 +332,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.15 src/lib/libc/db/mpool/mpool.c:1.15.4.1
--- src/lib/libc/db/mpool/mpool.c:1.15	Tue Jan 24 17:37:05 2006
+++ src/lib/libc/db/mpool/mpool.c	Thu Apr 23 02:38:26 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: mpool.c,v 1.15 2006/01/24 17:37:05 christos Exp $	*/
+/*	$NetBSD: mpool.c,v 1.15.4.1 2009/04/23 02:38:26 snj Exp $	*/
 
 /*-
  * Copyright (c) 1990, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)mpool.c	8.5 (Berkeley) 7/26/94";
 #else
-__RCSID("$NetBSD: mpool.c,v 1.15 2006/01/24 17:37:05 christos Exp $");
+__RCSID("$NetBSD: mpool.c,v 1.15.4.1 2009/04/23 02:38:26 snj Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -360,7 +360,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