Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Oct 2000 19:10:32 -0400 (EDT)
From:      josh@zipperup.org
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/22168: Patch to sys/kern to add M_ZERO to appropriate malloc calls
Message-ID:  <20001020231032.9136D3D1D@mail.snickers.org>

next in thread | raw e-mail | index | archive | help

>Number:         22168
>Category:       kern
>Synopsis:       Patch to sys/kern to add M_ZERO to appropriate malloc calls
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri Oct 20 16:20:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Josh Tiefenbach
>Release:        FreeBSD 5.0-CURRENT i386
>Organization:
Connective Software
>Environment:

	-current circa 20 Oct 2000, 1800 EST

>Description:

	Patch to convert malloc/bzero calls to malloc(..., M_ZERO) calls, as per
	phk's email to freebsd-current.

	Changes were made with the goal of keeping the semantics of the code the
	same in mind. If there was any doubt, then the change was not made.

	The patch compiles cleanly, and appears to have had no ill effects.

>How-To-Repeat:

	N/A

>Fix:
	Patch follows.

-----

Index: kern_descrip.c
===================================================================
RCS file: /usr/home/ncvs/src/sys/kern/kern_descrip.c,v
retrieving revision 1.92
diff -u -r1.92 kern_descrip.c
--- kern_descrip.c	2000/09/02 19:16:58	1.92
+++ kern_descrip.c	2000/10/20 21:51:27
@@ -770,8 +770,7 @@
 	 * the list of open files.
 	 */
 	nfiles++;
-	MALLOC(fp, struct file *, sizeof(struct file), M_FILE, M_WAITOK);
-	bzero(fp, sizeof(struct file));
+	MALLOC(fp, struct file *, sizeof(struct file), M_FILE, M_WAITOK | M_ZERO);
 	fp->f_count = 1;
 	fp->f_cred = p->p_ucred;
 	fp->f_ops = &badfileops;
@@ -817,8 +816,7 @@
 	register struct filedesc *fdp = p->p_fd;
 
 	MALLOC(newfdp, struct filedesc0 *, sizeof(struct filedesc0),
-	    M_FILEDESC, M_WAITOK);
-	bzero(newfdp, sizeof(struct filedesc0));
+	    M_FILEDESC, M_WAITOK | M_ZERO);
 	newfdp->fd_fd.fd_cdir = fdp->fd_cdir;
 	if (newfdp->fd_fd.fd_cdir)
 		VREF(newfdp->fd_fd.fd_cdir);
Index: kern_event.c
===================================================================
RCS file: /usr/home/ncvs/src/sys/kern/kern_event.c,v
retrieving revision 1.16
diff -u -r1.16 kern_event.c
--- kern_event.c	2000/08/30 04:49:07	1.16
+++ kern_event.c	2000/10/20 21:51:58
@@ -306,8 +306,7 @@
 	fp->f_flag = FREAD | FWRITE;
 	fp->f_type = DTYPE_KQUEUE;
 	fp->f_ops = &kqueueops;
-	kq = malloc(sizeof(struct kqueue), M_TEMP, M_WAITOK);
-	bzero(kq, sizeof(*kq));
+	kq = malloc(sizeof(struct kqueue), M_TEMP, M_WAITOK | M_ZERO);
 	TAILQ_INIT(&kq->kq_head);
 	fp->f_data = (caddr_t)kq;
 	p->p_retval[0] = fd;
Index: kern_jail.c
===================================================================
RCS file: /usr/home/ncvs/src/sys/kern/kern_jail.c,v
retrieving revision 1.7
diff -u -r1.7 kern_jail.c
--- kern_jail.c	2000/06/04 04:28:31	1.7
+++ kern_jail.c	2000/10/20 21:53:52
@@ -59,8 +59,7 @@
 		return (error);
 	if (j.version != 0)
 		return (EINVAL);
-	MALLOC(pr, struct prison *, sizeof *pr , M_PRISON, M_WAITOK);
-	bzero((caddr_t)pr, sizeof *pr);
+	MALLOC(pr, struct prison *, sizeof *pr , M_PRISON, M_WAITOK | M_ZERO);
 	error = copyinstr(j.hostname, &pr->pr_host, sizeof pr->pr_host, 0);
 	if (error) 
 		goto bail;
Index: kern_linker.c
===================================================================
RCS file: /usr/home/ncvs/src/sys/kern/kern_linker.c,v
retrieving revision 1.52
diff -u -r1.52 kern_linker.c
--- kern_linker.c	2000/10/04 17:40:24	1.52
+++ kern_linker.c	2000/10/20 21:55:23
@@ -515,10 +515,9 @@
     linker_file_t* newdeps;
 
     newdeps = malloc((file->ndeps + 1) * sizeof(linker_file_t*),
-		     M_LINKER, M_WAITOK);
+		     M_LINKER, M_WAITOK | M_ZERO);
     if (newdeps == NULL)
 	return ENOMEM;
-    bzero(newdeps, (file->ndeps + 1) * sizeof(linker_file_t*));
 
     if (file->deps) {
 	bcopy(file->deps, newdeps, file->ndeps * sizeof(linker_file_t*));
@@ -589,12 +588,11 @@
 	cp = malloc(sizeof(struct common_symbol)
 		    + common_size
 		    + strlen(name) + 1,
-		    M_LINKER, M_WAITOK);
+		    M_LINKER, M_WAITOK | M_ZERO);
 	if (!cp) {
 	    KLD_DPF(SYM, ("linker_file_lookup_symbol: nomem\n"));
 	    return 0;
 	}
-	bzero(cp, sizeof(struct common_symbol) + common_size + strlen(name)+ 1);
 
 	cp->address = (caddr_t) (cp + 1);
 	cp->name = cp->address + common_size;
Index: kern_prot.c
===================================================================
RCS file: /usr/home/ncvs/src/sys/kern/kern_prot.c,v
retrieving revision 1.63
diff -u -r1.63 kern_prot.c
--- kern_prot.c	2000/09/05 22:10:22	1.63
+++ kern_prot.c	2000/10/20 21:56:34
@@ -1136,8 +1136,7 @@
 {
 	register struct ucred *cr;
 
-	MALLOC(cr, struct ucred *, sizeof(*cr), M_CRED, M_WAITOK);
-	bzero((caddr_t)cr, sizeof(*cr));
+	MALLOC(cr, struct ucred *, sizeof(*cr), M_CRED, M_WAITOK | M_ZERO);
 	cr->cr_ref = 1;
 	return (cr);
 }
Index: kern_sysctl.c
===================================================================
RCS file: /usr/home/ncvs/src/sys/kern/kern_sysctl.c,v
retrieving revision 1.100
diff -u -r1.100 kern_sysctl.c
--- kern_sysctl.c	2000/07/28 22:40:04	1.100
+++ kern_sysctl.c	2000/10/20 21:57:21
@@ -339,8 +339,7 @@
 			return (NULL);
 		}
 	}
-	oidp = malloc(sizeof(struct sysctl_oid), M_SYSCTLOID, M_WAITOK);
-	bzero(oidp, sizeof(struct sysctl_oid));
+	oidp = malloc(sizeof(struct sysctl_oid), M_SYSCTLOID, M_WAITOK | M_ZERO);
 	oidp->oid_parent = parent;
 	SLIST_NEXT(oidp, oid_link) = NULL;
 	oidp->oid_number = number;
Index: link_elf.c
===================================================================
RCS file: /usr/home/ncvs/src/sys/kern/link_elf.c,v
retrieving revision 1.32
diff -u -r1.32 link_elf.c
--- link_elf.c	2000/10/06 05:20:02	1.32
+++ link_elf.c	2000/10/20 21:58:41
@@ -728,12 +728,11 @@
     nbytes = hdr->e_shnum * hdr->e_shentsize;
     if (nbytes == 0 || hdr->e_shoff == 0)
 	goto nosyms;
-    shdr = malloc(nbytes, M_LINKER, M_WAITOK);
+    shdr = malloc(nbytes, M_LINKER, M_WAITOK | M_ZERO);
     if (shdr == NULL) {
 	error = ENOMEM;
 	goto out;
     }
-    bzero(shdr, nbytes);
     error = vn_rdwr(UIO_READ, nd.ni_vp,
 		    (caddr_t)shdr, nbytes, hdr->e_shoff,
 		    UIO_SYSSPACE, IO_NODELOCKED, p->p_ucred, &resid, p);
Index: subr_blist.c
===================================================================
RCS file: /usr/home/ncvs/src/sys/kern/subr_blist.c,v
retrieving revision 1.6
diff -u -r1.6 subr_blist.c
--- subr_blist.c	2000/03/16 08:51:51	1.6
+++ subr_blist.c	2000/10/20 21:59:07
@@ -152,9 +152,7 @@
 		skip = (skip + 1) << BLIST_META_RADIX_SHIFT;
 	}
 
-	bl = malloc(sizeof(struct blist), M_SWAP, M_WAITOK);
-
-	bzero(bl, sizeof(*bl));
+	bl = malloc(sizeof(struct blist), M_SWAP, M_WAITOK | M_ZERO);
 
 	bl->bl_blocks = blocks;
 	bl->bl_radix = radix;
Index: tty.c
===================================================================
RCS file: /usr/home/ncvs/src/sys/kern/tty.c,v
retrieving revision 1.139
diff -u -r1.139 tty.c
--- tty.c	2000/09/07 01:32:52	1.139
+++ tty.c	2000/10/20 22:03:54
@@ -2402,8 +2402,7 @@
 
 	if (tp)
 		return(tp);
-        tp = malloc(sizeof *tp, M_TTYS, M_WAITOK);
-        bzero(tp, sizeof *tp);
+        tp = malloc(sizeof *tp, M_TTYS, M_WAITOK | M_ZERO);
 	ttyregister(tp);
         return (tp);
 }
Index: tty_pty.c
===================================================================
RCS file: /usr/home/ncvs/src/sys/kern/tty_pty.c,v
retrieving revision 1.80
diff -u -r1.80 tty_pty.c
--- tty_pty.c	2000/09/19 10:28:38	1.80
+++ tty_pty.c	2000/10/20 22:04:10
@@ -147,8 +147,7 @@
 	if (n & ~0xff)
 		return (NODEV);
 
-	pt = malloc(sizeof(*pt), M_PTY, M_WAITOK);
-	bzero(pt, sizeof(*pt));
+	pt = malloc(sizeof(*pt), M_PTY, M_WAITOK | M_ZERO);
 	pt->devs = devs = make_dev(&pts_cdevsw, n,
 	    UID_ROOT, GID_WHEEL, 0666, "tty%c%r", names[n / 32], n % 32);
 	pt->devc = devc = make_dev(&ptc_cdevsw, n,
Index: tty_snoop.c
===================================================================
RCS file: /usr/home/ncvs/src/sys/kern/tty_snoop.c,v
retrieving revision 1.47
diff -u -r1.47 tty_snoop.c
--- tty_snoop.c	2000/04/02 07:02:41	1.47
+++ tty_snoop.c	2000/10/20 22:04:38
@@ -292,8 +292,7 @@
 	if (dev->si_drv1 == NULL) {
 		int mynor = minor(dev);
 
-		dev->si_drv1 = snp = malloc(sizeof(*snp), M_SNP, M_WAITOK);
-		bzero(snp, sizeof(*snp));
+		dev->si_drv1 = snp = malloc(sizeof(*snp), M_SNP, M_WAITOK | M_ZERO);
 		make_dev(&snp_cdevsw, mynor, 0, 0, 0600, "snp%d", mynor);
 	} else
 		return (EBUSY);
Index: uipc_socket.c
===================================================================
RCS file: /usr/home/ncvs/src/sys/kern/uipc_socket.c,v
retrieving revision 1.83
diff -u -r1.83 uipc_socket.c
--- uipc_socket.c	2000/09/28 04:41:22	1.83
+++ uipc_socket.c	2000/10/20 22:06:52
@@ -1038,8 +1038,7 @@
 		error = ENOENT;
 		goto out;
 	}
-	MALLOC(af, struct so_accf *, sizeof(*af), M_ACCF, M_WAITOK);
-	bzero(af, sizeof(*af));
+	MALLOC(af, struct so_accf *, sizeof(*af), M_ACCF, M_WAITOK | M_ZERO);
 	if (afp->accf_create != NULL) {
 		if (afap->af_name[0] != '\0') {
 			int len = strlen(afap->af_name) + 1;
@@ -1298,8 +1297,7 @@
 			if ((so->so_options & SO_ACCEPTCONN) == 0)
 				return (EINVAL);
 			MALLOC(afap, struct accept_filter_arg *, sizeof(*afap),
-				M_TEMP, M_WAITOK);
-			bzero(afap, sizeof(*afap));
+				M_TEMP, M_WAITOK | M_ZERO);
 			if ((so->so_options & SO_ACCEPTFILTER) != 0) {
 				strcpy(afap->af_name, so->so_accf->so_accept_filter->accf_name);
 				if (so->so_accf->so_accept_filter_str != NULL)
Index: vfs_cache.c
===================================================================
RCS file: /usr/home/ncvs/src/sys/kern/vfs_cache.c,v
retrieving revision 1.49
diff -u -r1.49 vfs_cache.c
--- vfs_cache.c	2000/09/17 07:26:41	1.49
+++ vfs_cache.c	2000/10/20 22:09:35
@@ -299,8 +299,7 @@
 	}
 	 
 	ncp = (struct namecache *)
-		malloc(sizeof *ncp + cnp->cn_namelen, M_VFSCACHE, M_WAITOK);
-	bzero((char *)ncp, sizeof *ncp);
+		malloc(sizeof *ncp + cnp->cn_namelen, M_VFSCACHE, M_WAITOK | M_ZERO);
 	numcache++;
 	if (!vp) {
 		numneg++;
Index: vfs_init.c
===================================================================
RCS file: /usr/home/ncvs/src/sys/kern/vfs_init.c,v
retrieving revision 1.50
diff -u -r1.50 vfs_init.c
--- vfs_init.c	2000/09/06 17:51:54	1.50
+++ vfs_init.c	2000/10/20 22:11:23
@@ -125,10 +125,9 @@
 		if (*opv_desc_vector_p)
 			FREE(*opv_desc_vector_p, M_VNODE);
 		MALLOC(*opv_desc_vector_p, vop_t **,
-		       vfs_opv_numops * sizeof(vop_t *), M_VNODE, M_WAITOK);
+		       vfs_opv_numops * sizeof(vop_t *), M_VNODE, M_WAITOK | M_ZERO);
 		if (*opv_desc_vector_p == NULL)
 			panic("no memory for vop_t ** vector");
-		bzero(*opv_desc_vector_p, vfs_opv_numops * sizeof(vop_t *));
 
 		/* Fill in, with slot 0 being to return EOPNOTSUPP */
 		opv_desc_vector = *opv_desc_vector_p;
Index: vfs_subr.c
===================================================================
RCS file: /usr/home/ncvs/src/sys/kern/vfs_subr.c,v
retrieving revision 1.288
diff -u -r1.288 vfs_subr.c
--- vfs_subr.c	2000/10/20 07:58:05	1.288
+++ vfs_subr.c	2000/10/20 22:12:06
@@ -339,8 +339,7 @@
 			break;
 	if (vfsp == NULL)
 		return (ENODEV);
-	mp = malloc((u_long)sizeof(struct mount), M_MOUNT, M_WAITOK);
-	bzero((char *)mp, (u_long)sizeof(struct mount));
+	mp = malloc((u_long)sizeof(struct mount), M_MOUNT, M_WAITOK | M_ZERO);
 	lockinit(&mp->mnt_lock, PVFS, "vfslock", 0, LK_NOPAUSE);
 	(void)vfs_busy(mp, LK_NOWAIT, 0, p);
 	LIST_INIT(&mp->mnt_vnodelist);
@@ -2320,8 +2319,7 @@
 		return (0);
 	}
 	i = sizeof(struct netcred) + argp->ex_addrlen + argp->ex_masklen;
-	np = (struct netcred *) malloc(i, M_NETADDR, M_WAITOK);
-	bzero((caddr_t) np, i);
+	np = (struct netcred *) malloc(i, M_NETADDR, M_WAITOK | M_ZERO);
 	saddr = (struct sockaddr *) (np + 1);
 	if ((error = copyin(argp->ex_addr, (caddr_t) saddr, argp->ex_addrlen)))
 		goto out;
Index: vfs_syscalls.c
===================================================================
RCS file: /usr/home/ncvs/src/sys/kern/vfs_syscalls.c,v
retrieving revision 1.169
diff -u -r1.169 vfs_syscalls.c
--- vfs_syscalls.c	2000/10/04 01:29:09	1.169
+++ vfs_syscalls.c	2000/10/20 22:12:46
@@ -255,8 +255,7 @@
 	/*
 	 * Allocate and initialize the filesystem.
 	 */
-	mp = malloc(sizeof(struct mount), M_MOUNT, M_WAITOK);
-	bzero((char *)mp, (u_long)sizeof(struct mount));
+	mp = malloc(sizeof(struct mount), M_MOUNT, M_WAITOK | M_ZERO);
 	lockinit(&mp->mnt_lock, PVFS, "vfslock", 0, LK_NOPAUSE);
 	(void)vfs_busy(mp, LK_NOWAIT, 0, p);
 	mp->mnt_op = vfsp->vfc_vfsops;


>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20001020231032.9136D3D1D>