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/

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();

Reply via email to