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>