On Wed, Oct 20, 2021 at 10:18:57AM +1100, Jonathan Gray wrote:
> On Tue, Oct 19, 2021 at 07:37:36AM -0600, Todd C. Miller wrote:
> > On Tue, 19 Oct 2021 18:08:04 +1100, Jonathan Gray wrote:
> > 
> > > There are many others along those lines in the kernel, for example
> > > sparse complains about these in vfs_subr.c
> > >
> > > /sys/kern/vfs_subr.c:274:64: warning: Using plain integer as NULL pointer
> > > /sys/kern/vfs_subr.c:275:64: warning: Using plain integer as NULL pointer
> > > /sys/kern/vfs_subr.c:430:32: warning: Using plain integer as NULL pointer
> > > /sys/kern/vfs_subr.c:467:22: warning: Using plain integer as NULL pointer
> > > /sys/kern/vfs_subr.c:533:50: warning: Using plain integer as NULL pointer
> > > /sys/kern/vfs_subr.c:1150:77: warning: Using plain integer as NULL pointer
> > > /sys/kern/vfs_subr.c:1430:42: warning: Using plain integer as NULL pointer
> > > /sys/kern/vfs_subr.c:1483:19: warning: Using plain integer as NULL pointer
> > > /sys/kern/vfs_subr.c:1752:25: warning: Using plain integer as NULL pointer
> > >
> > > If this is something worth changing should it be a larger diff?
> > 
> > I think it is worth changing.  Using NULL in place of 0 makes the
> > code easier to parse for humans too.
> > 
> >  - todd
> 
> amd64 mp build shows 923 warnings though some of those are in places
> we wouldn't want to change like libz and drm.
> 
> here is a diff to remove the warnings from sys/kern/

ok semarie@

> diff --git sys/ddb/db_sym.h sys/ddb/db_sym.h
> index fe1aff6d6af..c8daa983104 100644
> --- sys/ddb/db_sym.h
> +++ sys/ddb/db_sym.h
> @@ -75,11 +75,11 @@ void db_symbol_values(Elf_Sym *, char **, db_expr_t *);
>                                       /* return name and value of symbol */
>  
>  #define db_find_sym_and_offset(val,namep,offp)       \
> -     db_symbol_values(db_search_symbol(val,DB_STGY_ANY,offp),namep,0)
> +     db_symbol_values(db_search_symbol(val,DB_STGY_ANY,offp),namep,NULL)
>                                       /* find name&value given approx val */
>  
>  #define db_find_xtrn_sym_and_offset(val,namep,offp)  \
> -     db_symbol_values(db_search_symbol(val,DB_STGY_XTRN,offp),namep,0)
> +     db_symbol_values(db_search_symbol(val,DB_STGY_XTRN,offp),namep,NULL)
>                                       /* ditto, but no locals */
>  
>  void db_printsym(db_expr_t, db_strategy_t, int (*)(const char *, ...));
> diff --git sys/kern/kern_exit.c sys/kern/kern_exit.c
> index 0c6ceb3546d..3b194b054af 100644
> --- sys/kern/kern_exit.c
> +++ sys/kern/kern_exit.c
> @@ -266,7 +266,7 @@ exit1(struct proc *p, int xexit, int xsig, int flags)
>               qr = LIST_FIRST(&pr->ps_children);
>               if (qr)         /* only need this if any child is S_ZOMB */
>                       wakeup(initprocess);
> -             for (; qr != 0; qr = nqr) {
> +             for (; qr != NULL; qr = nqr) {
>                       nqr = LIST_NEXT(qr, ps_sibling);
>                       /*
>                        * Traced processes are killed since their
> diff --git sys/kern/kern_proc.c sys/kern/kern_proc.c
> index bbe709ea883..a2fa098273e 100644
> --- sys/kern/kern_proc.c
> +++ sys/kern/kern_proc.c
> @@ -320,7 +320,7 @@ leavepgrp(struct process *pr)
>       LIST_REMOVE(pr, ps_pglist);
>       if (LIST_EMPTY(&pr->ps_pgrp->pg_members))
>               pgdelete(pr->ps_pgrp);
> -     pr->ps_pgrp = 0;
> +     pr->ps_pgrp = NULL;
>  }
>  
>  /*
> diff --git sys/kern/kern_prot.c sys/kern/kern_prot.c
> index f6fff9d87bb..5414550def0 100644
> --- sys/kern/kern_prot.c
> +++ sys/kern/kern_prot.c
> @@ -271,7 +271,8 @@ sys_setpgid(struct proc *curp, void *v, register_t 
> *retval)
>       newpgrp = pool_get(&pgrp_pool, PR_WAITOK);
>  
>       if (pid != 0 && pid != curpr->ps_pid) {
> -             if ((targpr = prfind(pid)) == 0 || !inferior(targpr, curpr)) {
> +             if ((targpr = prfind(pid)) == NULL ||
> +                 !inferior(targpr, curpr)) {
>                       error = ESRCH;
>                       goto out;
>               }
> diff --git sys/kern/kern_sig.c sys/kern/kern_sig.c
> index 83d183aed8d..f5c42ab5fc8 100644
> --- sys/kern/kern_sig.c
> +++ sys/kern/kern_sig.c
> @@ -230,7 +230,7 @@ sigstkinit(struct sigaltstack *ss)
>  {
>       ss->ss_flags = SS_DISABLE;
>       ss->ss_size = 0;
> -     ss->ss_sp = 0;
> +     ss->ss_sp = NULL;
>  }
>  
>  /*
> @@ -1116,7 +1116,7 @@ ptsignal(struct proc *p, int signum, enum signal_type 
> type)
>                               atomic_clearbits_int(siglist, mask);
>                       if (action == SIG_CATCH)
>                               goto runfast;
> -                     if (p->p_wchan == 0)
> +                     if (p->p_wchan == NULL)
>                               goto run;
>                       p->p_stat = SSLEEP;
>                       goto out;
> @@ -1410,12 +1410,12 @@ postsig(struct proc *p, int signum)
>       action = ps->ps_sigact[signum];
>       info = (ps->ps_siginfo & mask) != 0;
>       onstack = (ps->ps_sigonstack & mask) != 0;
> -     sigval.sival_ptr = 0;
> +     sigval.sival_ptr = NULL;
>  
>       if (p->p_sisig != signum) {
>               trapno = 0;
>               code = SI_USER;
> -             sigval.sival_ptr = 0;
> +             sigval.sival_ptr = NULL;
>       } else {
>               trapno = p->p_sitrapno;
>               code = p->p_sicode;
> @@ -2139,7 +2139,7 @@ single_thread_clear(struct proc *p, int flag)
>                * it back into some sleep queue
>                */
>               if (q->p_stat == SSTOP && (q->p_flag & flag) == 0) {
> -                     if (q->p_wchan == 0)
> +                     if (q->p_wchan == NULL)
>                               setrunnable(q);
>                       else
>                               q->p_stat = SSLEEP;
> diff --git sys/kern/kern_sysctl.c sys/kern/kern_sysctl.c
> index d2069599418..7e0be999b47 100644
> --- sys/kern/kern_sysctl.c
> +++ sys/kern/kern_sysctl.c
> @@ -1998,7 +1998,7 @@ sysctl_proc_nobroadcastkill(int *name, u_int namelen, 
> void *newp, size_t newlen,
>               return (EINVAL);
>  
>       /* Only root can change PS_NOBROADCASTKILL */
> -     if (newp != 0 && (error = suser(cp)) != 0)
> +     if (newp != NULL && (error = suser(cp)) != 0)
>               return (error);
>  
>       /* get the PS_NOBROADCASTKILL flag */
> diff --git sys/kern/kern_tc.c sys/kern/kern_tc.c
> index 69a4a3b19db..240a03c7c42 100644
> --- sys/kern/kern_tc.c
> +++ sys/kern/kern_tc.c
> @@ -56,7 +56,7 @@ dummy_get_timecount(struct timecounter *tc)
>  
>  static struct timecounter dummy_timecounter = {
>       .tc_get_timecount = dummy_get_timecount,
> -     .tc_poll_pps = 0,
> +     .tc_poll_pps = NULL,
>       .tc_counter_mask = ~0u,
>       .tc_frequency = 1000000,
>       .tc_name = "dummy",
> diff --git sys/kern/subr_disk.c sys/kern/subr_disk.c
> index 64ddf136069..bfedd1ab638 100644
> --- sys/kern/subr_disk.c
> +++ sys/kern/subr_disk.c
> @@ -387,7 +387,7 @@ readdoslabel(struct buf *bp, void (*strat)(struct buf *),
>                       if (error == 0) {
>                               dospartoff = DL_GETBSTART(gptlp);
>                               dospartend = DL_GETBEND(gptlp);
> -                             if (partoffp == 0)
> +                             if (partoffp == NULL)
>                                       *lp = *gptlp;
>                               free(gptlp, M_DEVBUF,
>                                   sizeof(struct disklabel));
> diff --git sys/kern/subr_userconf.c sys/kern/subr_userconf.c
> index a86660c0d28..5b5a8e994ff 100644
> --- sys/kern/subr_userconf.c
> +++ sys/kern/subr_userconf.c
> @@ -118,7 +118,7 @@ userconf_init(void)
>       struct cfdata *cd;
>       int   ln;
>  
> -     while (cfdata[i].cf_attach != 0) {
> +     while (cfdata[i].cf_attach != NULL) {
>               userconf_maxdev = i;
>               userconf_totdev = i;
>  
> @@ -132,7 +132,7 @@ userconf_init(void)
>               i++;
>       }
>  
> -     while (cfdata[i].cf_attach == 0) {
> +     while (cfdata[i].cf_attach == NULL) {
>               userconf_totdev = i;
>               i++;
>       }
> @@ -884,7 +884,7 @@ userconf_common_dev(char *dev, int len, short unit, short 
> state, char routine)
>               break;
>       }
>  
> -     while (cfdata[i].cf_attach != 0) {
> +     while (cfdata[i].cf_attach != NULL) {
>               if (strlen(cfdata[i].cf_driver->cd_name) == len) {
>  
>                       /*
> @@ -1108,7 +1108,7 @@ userconf_add(char *dev, int len, short unit, short 
> state)
>               /* Find max unit number of the device type */
>  
>               i = 0;
> -             while (cfdata[i].cf_attach != 0) {
> +             while (cfdata[i].cf_attach != NULL) {
>                       if (strlen(cfdata[i].cf_driver->cd_name) == len &&
>                           strncasecmp(dev, cfdata[i].cf_driver->cd_name,
>                           len) == 0) {
> @@ -1133,7 +1133,7 @@ userconf_add(char *dev, int len, short unit, short 
> state)
>               star_unit = -1;
>  
>               i = 0;
> -             while (cfdata[i].cf_attach != 0) {
> +             while (cfdata[i].cf_attach != NULL) {
>                       if (strlen(cfdata[i].cf_driver->cd_name) == len &&
>                           strncasecmp(dev, cfdata[i].cf_driver->cd_name,
>                           len) == 0) {
> @@ -1152,7 +1152,7 @@ userconf_add(char *dev, int len, short unit, short 
> state)
>               star_unit++;
>  
>               i = 0;
> -             while (cfdata[i].cf_attach != 0) {
> +             while (cfdata[i].cf_attach != NULL) {
>                       if (strlen(cfdata[i].cf_driver->cd_name) == len &&
>                           strncasecmp(dev, cfdata[i].cf_driver->cd_name,
>                           len) == 0) {
> diff --git sys/kern/sys_socket.c sys/kern/sys_socket.c
> index f522890eb29..0c54cc00ecf 100644
> --- sys/kern/sys_socket.c
> +++ sys/kern/sys_socket.c
> @@ -216,6 +216,6 @@ soo_close(struct file *fp, struct proc *p)
>               flags = (fp->f_flag & FNONBLOCK) ? MSG_DONTWAIT : 0;
>               error = soclose(fp->f_data, flags);
>       }
> -     fp->f_data = 0;
> +     fp->f_data = NULL;
>       return (error);
>  }
> diff --git sys/kern/tty.c sys/kern/tty.c
> index 7f41b2bf923..aac85909d94 100644
> --- sys/kern/tty.c
> +++ sys/kern/tty.c
> @@ -1452,7 +1452,7 @@ ttypend(struct tty *tp)
>       SET(tp->t_state, TS_TYPEN);
>       tq = tp->t_rawq;
>       tp->t_rawq.c_cc = 0;
> -     tp->t_rawq.c_cf = tp->t_rawq.c_cl = 0;
> +     tp->t_rawq.c_cf = tp->t_rawq.c_cl = NULL;
>       while ((c = getc(&tq)) >= 0)
>               ttyinput(c, tp);
>       CLR(tp->t_state, TS_TYPEN);
> diff --git sys/kern/tty_pty.c sys/kern/tty_pty.c
> index 660a2e86a9b..82c6f9230fd 100644
> --- sys/kern/tty_pty.c
> +++ sys/kern/tty_pty.c
> @@ -334,7 +334,7 @@ ptswrite(dev_t dev, struct uio *uio, int flag)
>       struct pt_softc *pti = pt_softc[minor(dev)];
>       struct tty *tp = pti->pt_tty;
>  
> -     if (tp->t_oproc == 0)
> +     if (tp->t_oproc == NULL)
>               return (EIO);
>       return ((*linesw[tp->t_line].l_write)(tp, uio, flag));
>  }
> @@ -428,7 +428,7 @@ ptcclose(dev_t dev, int flag, int devtype, struct proc *p)
>  
>       (void)(*linesw[tp->t_line].l_modem)(tp, 0);
>       tp->t_state &= ~TS_CARR_ON;
> -     tp->t_oproc = 0;                /* mark closed */
> +     tp->t_oproc = NULL;             /* mark closed */
>       return (0);
>  }
>  
> diff --git sys/kern/uipc_syscalls.c sys/kern/uipc_syscalls.c
> index 59aa2e56589..88291f0e58b 100644
> --- sys/kern/uipc_syscalls.c
> +++ sys/kern/uipc_syscalls.c
> @@ -513,7 +513,7 @@ sys_sendto(struct proc *p, void *v, register_t *retval)
>       msg.msg_namelen = SCARG(uap, tolen);
>       msg.msg_iov = &aiov;
>       msg.msg_iovlen = 1;
> -     msg.msg_control = 0;
> +     msg.msg_control = NULL;
>       msg.msg_flags = 0;
>       aiov.iov_base = (char *)SCARG(uap, buf);
>       aiov.iov_len = SCARG(uap, len);
> @@ -708,7 +708,7 @@ sys_recvfrom(struct proc *p, void *v, register_t *retval)
>       msg.msg_iovlen = 1;
>       aiov.iov_base = SCARG(uap, buf);
>       aiov.iov_len = SCARG(uap, len);
> -     msg.msg_control = 0;
> +     msg.msg_control = NULL;
>       msg.msg_flags = SCARG(uap, flags);
>       return (recvit(p, SCARG(uap, s), &msg,
>           (caddr_t)SCARG(uap, fromlenaddr), retval));
> @@ -1048,7 +1048,7 @@ sys_getsockname(struct proc *p, void *v, register_t 
> *retval)
>               goto bad;
>       m = m_getclr(M_WAIT, MT_SONAME);
>       s = solock(so);
> -     error = (*so->so_proto->pr_usrreq)(so, PRU_SOCKADDR, 0, m, 0, p);
> +     error = (*so->so_proto->pr_usrreq)(so, PRU_SOCKADDR, NULL, m, NULL, p);
>       sounlock(so, s);
>       if (error)
>               goto bad;
> @@ -1091,7 +1091,7 @@ sys_getpeername(struct proc *p, void *v, register_t 
> *retval)
>               goto bad;
>       m = m_getclr(M_WAIT, MT_SONAME);
>       s = solock(so);
> -     error = (*so->so_proto->pr_usrreq)(so, PRU_PEERADDR, 0, m, 0, p);
> +     error = (*so->so_proto->pr_usrreq)(so, PRU_PEERADDR, NULL, m, NULL, p);
>       sounlock(so, s);
>       if (error)
>               goto bad;
> diff --git sys/kern/uipc_usrreq.c sys/kern/uipc_usrreq.c
> index fc9125b87b8..d8914276ef6 100644
> --- sys/kern/uipc_usrreq.c
> +++ sys/kern/uipc_usrreq.c
> @@ -655,7 +655,7 @@ unp_connect(struct socket *so, struct mbuf *nam, struct 
> proc *p)
>       }
>       if (so->so_proto->pr_flags & PR_CONNREQUIRED) {
>               if ((so2->so_options & SO_ACCEPTCONN) == 0 ||
> -                 (so3 = sonewconn(so2, 0)) == 0) {
> +                 (so3 = sonewconn(so2, 0)) == NULL) {
>                       error = ECONNREFUSED;
>                       goto put_locked;
>               }
> diff --git sys/kern/vfs_biomem.c sys/kern/vfs_biomem.c
> index b3c41c6551a..1f517296484 100644
> --- sys/kern/vfs_biomem.c
> +++ sys/kern/vfs_biomem.c
> @@ -238,7 +238,7 @@ buf_unmap(struct buf *bp)
>       TAILQ_REMOVE(&buf_valist, bp, b_valist);
>       bcstats.kvaslots_avail--;
>       va = (vaddr_t)bp->b_data;
> -     bp->b_data = 0;
> +     bp->b_data = NULL;
>       pmap_kremove(va, bp->b_bufsize);
>       pmap_update(pmap_kernel());
>  
> diff --git sys/kern/vfs_lookup.c sys/kern/vfs_lookup.c
> index 94943dad1e1..b094cf577aa 100644
> --- sys/kern/vfs_lookup.c
> +++ sys/kern/vfs_lookup.c
> @@ -381,7 +381,7 @@ int
>  vfs_lookup(struct nameidata *ndp)
>  {
>       char *cp;                       /* pointer into pathname argument */
> -     struct vnode *dp = 0;           /* the directory we are searching */
> +     struct vnode *dp = NULL;        /* the directory we are searching */
>       struct vnode *tdp;              /* saved dp */
>       struct mount *mp;               /* mount table entry */
>       int docache;                    /* == 0 do not cache last component */
> @@ -725,7 +725,7 @@ bad:
>  int
>  vfs_relookup(struct vnode *dvp, struct vnode **vpp, struct componentname 
> *cnp)
>  {
> -     struct vnode *dp = 0;           /* the directory we are searching */
> +     struct vnode *dp = NULL;        /* the directory we are searching */
>       int wantparent;                 /* 1 => wantparent or lockparent flag */
>       int rdonly;                     /* lookup read-only flag bit */
>       int error = 0;
> diff --git sys/kern/vfs_subr.c sys/kern/vfs_subr.c
> index f807760ea9d..6541408ea17 100644
> --- sys/kern/vfs_subr.c
> +++ sys/kern/vfs_subr.c
> @@ -271,8 +271,8 @@ vfs_rootmountalloc(char *fstypename, char *devname, 
> struct mount **mpp)
>       mp = vfs_mount_alloc(NULLVP, vfsp);
>       mp->mnt_flag |= MNT_RDONLY;
>       mp->mnt_stat.f_mntonname[0] = '/';
> -     copystr(devname, mp->mnt_stat.f_mntfromname, MNAMELEN, 0);
> -     copystr(devname, mp->mnt_stat.f_mntfromspec, MNAMELEN, 0);
> +     copystr(devname, mp->mnt_stat.f_mntfromname, MNAMELEN, NULL);
> +     copystr(devname, mp->mnt_stat.f_mntfromspec, MNAMELEN, NULL);
>       *mpp = mp;
>       return (0);
>   }
> @@ -427,7 +427,7 @@ getnewvnode(enum vtagtype tag, struct mount *mp, const 
> struct vops *vops,
>               if (vp == NULL) {
>                       splx(s);
>                       tablefull("vnode");
> -                     *vpp = 0;
> +                     *vpp = NULL;
>                       return (ENFILE);
>               }
>  
> @@ -464,7 +464,7 @@ getnewvnode(enum vtagtype tag, struct mount *mp, const 
> struct vops *vops,
>       insmntque(vp, mp);
>       *vpp = vp;
>       vp->v_usecount = 1;
> -     vp->v_data = 0;
> +     vp->v_data = NULL;
>       return (0);
>  }
>  
> @@ -530,7 +530,7 @@ getdevvp(dev_t dev, struct vnode **vpp, enum vtype type)
>       }
>       vp = nvp;
>       vp->v_type = type;
> -     if ((nvp = checkalias(vp, dev, NULL)) != 0) {
> +     if ((nvp = checkalias(vp, dev, NULL)) != NULL) {
>               vput(vp);
>               vp = nvp;
>       }
> @@ -1147,7 +1147,8 @@ vgonel(struct vnode *vp, struct proc *p)
>        * If special device, remove it from special device alias list
>        * if it is on one.
>        */
> -     if ((vp->v_type == VBLK || vp->v_type == VCHR) && vp->v_specinfo != 0) {
> +     if ((vp->v_type == VBLK || vp->v_type == VCHR) &&
> +         vp->v_specinfo != NULL) {
>               if ((vp->v_flag & VALIASED) == 0 && vp->v_type == VCHR &&
>                   (cdevsw[major(vp->v_rdev)].d_flags & D_CLONE) &&
>                   (minor(vp->v_rdev) >> CLONE_SHIFT == 0)) {
> @@ -1427,7 +1428,7 @@ vfs_hang_addrlist(struct mount *mp, struct netexport 
> *nep,
>       struct radix_node_head *rnh;
>       int nplen, i;
>       struct radix_node *rn;
> -     struct sockaddr *saddr, *smask = 0;
> +     struct sockaddr *saddr, *smask = NULL;
>       int error;
>  
>       if (argp->ex_addrlen == 0) {
> @@ -1480,7 +1481,7 @@ vfs_hang_addrlist(struct mount *mp, struct netexport 
> *nep,
>               goto out;
>       }
>       rn = rn_addroute(saddr, smask, rnh, np->netc_rnodes, 0);
> -     if (rn == 0 || np != (struct netcred *)rn) { /* already exists */
> +     if (rn == NULL || np != (struct netcred *)rn) { /* already exists */
>               error = EPERM;
>               goto out;
>       }
> @@ -1749,7 +1750,7 @@ vfs_shutdown(struct proc *p)
>  
>       printf("syncing disks...");
>  
> -     if (panicstr == 0) {
> +     if (panicstr == NULL) {
>               /* Sync before unmount, in case we hang on something. */
>               sys_sync(p, NULL, NULL);
>               vfs_unmountall();

-- 
Sebastien Marie

Reply via email to