diff options
author | Toomas Soome <tsoome@me.com> | 2020-01-30 14:41:56 +0200 |
---|---|---|
committer | Toomas Soome <tsoome@me.com> | 2020-04-27 20:19:42 +0300 |
commit | 87e3123fcf08cf5c377d6a69a15ea9f22d06d024 (patch) | |
tree | 4b45653994a63c958b4075d7ebc2e7ff8f07e65d /usr/src | |
parent | d1b674c50672a564fe30c5973fb7d56c97400713 (diff) | |
download | illumos-gate-87e3123fcf08cf5c377d6a69a15ea9f22d06d024.tar.gz |
12560 zsh: NULL pointer errors
Reviewed by: Gergő Doma <domag02@gmail.com>
Reviewed by: Yuri Pankov <ypankov@fastmail.com>
Approved by: Dan McDonald <danmcd@joyent.com>
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/sun/io/zs_hdlc.c | 193 | ||||
-rw-r--r-- | usr/src/uts/sun4u/zsh/Makefile | 22 |
2 files changed, 96 insertions, 119 deletions
diff --git a/usr/src/uts/sun/io/zs_hdlc.c b/usr/src/uts/sun/io/zs_hdlc.c index 5b9b1d45e2..dc9a0bde3d 100644 --- a/usr/src/uts/sun/io/zs_hdlc.c +++ b/usr/src/uts/sun/io/zs_hdlc.c @@ -117,7 +117,7 @@ int zsh_h_log_n[2]; } #define zsh_h_log_clear \ - { register char *p; \ + { char *p; \ for (p = &zsh_h_log[zs->zs_unit][ZSH_H_LOG_MAX]; \ p >= &zsh_h_log[zs->zs_unit][0]; p--) \ *p = '\0'; \ @@ -169,8 +169,8 @@ static struct module_info hdlc_minfo = { "zsh", /* module name */ 0, /* minimum packet size accepted */ INFPSZ, /* maximum packet size accepted */ - 12*1024, /* queue high water mark (bytes) */ - 4*1024 /* queue low water mark (bytes) */ + 12 * 1024, /* queue high water mark (bytes) */ + 4 * 1024 /* queue low water mark (bytes) */ }; static struct qinit hdlc_rinit = { @@ -292,9 +292,9 @@ static int zsh_setmode(struct zscom *zs, struct syncline *zss, */ #define ZSH_GETBLOCK(zs, allocbcount) \ { \ - register int n = ZSH_MAX_RSTANDBY; \ + int n = ZSH_MAX_RSTANDBY; \ while (--n >= 0) { \ - if (!zss->sl_rstandby[n]) { \ + if (zss->sl_rstandby[n] == NULL) { \ if ((zss->sl_rstandby[n] = \ allocb(zss->sl_mru, BPRI_MED)) == NULL) { \ if (zss->sl_bufcid == 0) { \ @@ -318,7 +318,7 @@ static int zsh_setmode(struct zscom *zs, struct syncline *zss, */ #define ZSH_ALLOCB(mp) \ { \ - register int n = ZSH_MAX_RSTANDBY; \ + int n = ZSH_MAX_RSTANDBY; \ mp = NULL; \ while (--n >= 0) { \ if ((mp = zss->sl_rstandby[n]) != NULL) { \ @@ -330,7 +330,7 @@ static int zsh_setmode(struct zscom *zs, struct syncline *zss, #define ZSH_PUTQ(mp) \ { \ - register int wptr, rptr; \ + int wptr, rptr; \ wptr = zss->sl_rdone_wptr; \ rptr = zss->sl_rdone_rptr; \ zss->sl_rdone[wptr] = mp; \ @@ -366,10 +366,10 @@ static int zsh_setmode(struct zscom *zs, struct syncline *zss, #define ZSH_FLUSHQ \ { \ - register mblk_t *tmp; \ + mblk_t *tmp; \ for (;;) { \ ZSH_GETQ(tmp); \ - if (!(tmp)) \ + if (tmp == NULL) \ break; \ freemsg(tmp); \ } \ @@ -386,9 +386,8 @@ zsh_probe(dev_info_t *dev) static int zsh_attach(dev_info_t *dev, ddi_attach_cmd_t cmd) { - register int unit; - char name[3] = { - '\0', '\0', '\0' }; + int unit; + char name[3] = { '\0', '\0', '\0' }; /* * Since zsh is a child of the "pseudo" nexus, we can expect the @@ -406,25 +405,25 @@ zsh_attach(dev_info_t *dev, ddi_attach_cmd_t cmd) return (DDI_FAILURE); /* only use cpu ports */ if (ddi_create_minor_node(dev, "zsh", S_IFCHR, - NULL, DDI_PSEUDO, CLONE_DEV) == DDI_FAILURE) { + 0, DDI_PSEUDO, CLONE_DEV) == DDI_FAILURE) { ddi_remove_minor_node(dev, NULL); cmn_err(CE_WARN, "zsh clone device creation failed."); return (DDI_FAILURE); } - for (; unit < maxzsh/2; unit++) { + for (; unit < maxzsh / 2; unit++) { zscom[unit].zs_hdlc_dip = dev; (void) sprintf(name, "%d", unit); if (ddi_create_minor_node(dev, name, S_IFCHR, - 2*unit, DDI_PSEUDO, NULL) == DDI_FAILURE) { + 2 * unit, DDI_PSEUDO, 0) == DDI_FAILURE) { ddi_remove_minor_node(dev, NULL); return (DDI_FAILURE); } unit++; (void) sprintf(name, "%d", unit); if (ddi_create_minor_node(dev, name, S_IFCHR, - 2*(unit-1)+1, DDI_PSEUDO, NULL) == DDI_FAILURE) { + 2 * (unit - 1) + 1, DDI_PSEUDO, 0) == DDI_FAILURE) { ddi_remove_minor_node(dev, NULL); return (DDI_FAILURE); } @@ -436,11 +435,11 @@ zsh_attach(dev_info_t *dev, ddi_attach_cmd_t cmd) /* ARGSUSED */ int zsh_info(dev_info_t *dip, ddi_info_cmd_t infocmd, void *arg, -void **result) + void **result) { - register dev_t dev = (dev_t)arg; - register int unit, error; - register struct zscom *zs; + dev_t dev = (dev_t)arg; + int unit, error; + struct zscom *zs; if ((unit = UNIT(dev)) >= nzs) return (DDI_FAILURE); @@ -479,7 +478,7 @@ zsh_detach(dev_info_t *dev, ddi_detach_cmd_t cmd) static void zsh_init_port(struct zscom *zs, struct syncline *zss) { - register uchar_t s0; + uchar_t s0; SCC_WRITE(3, (ZSWR3_RX_ENABLE | ZSWR3_RXCRC_ENABLE | ZSWR3_RX_8)); SCC_WRITE(5, (ZSWR5_TX_8 | ZSWR5_DTR | ZSWR5_TXCRC_ENABLE)); @@ -500,7 +499,7 @@ zsh_init_port(struct zscom *zs, struct syncline *zss) zss->sl_txstate = TX_RTS; zss->sl_rr0 &= ~ZSRR0_CTS; zss->sl_wd_count = zsh_timer_count; - if (!zss->sl_wd_id) + if (zss->sl_wd_id == NULL) zss->sl_wd_id = timeout(zsh_watchdog, zs, SIO_WATCHDOG_TICK); } @@ -520,11 +519,11 @@ zsh_init_port(struct zscom *zs, struct syncline *zss) static int zsh_open(queue_t *rq, dev_t *dev, int flag, int sflag, cred_t *cr) { - register struct zscom *zs; - register struct syncline *zss; - register struct ser_str *stp; - register int unit; - register int tmp; + struct zscom *zs; + struct syncline *zss; + struct ser_str *stp; + int unit; + int tmp; if (sflag != CLONEOPEN) { if (rq->q_ptr) @@ -559,7 +558,7 @@ zsh_open(queue_t *rq, dev_t *dev, int flag, int sflag, cred_t *cr) zss = (struct syncline *)&zscom[unit].zs_priv_str; stp = &zss->sl_stream; - stp->str_state = NULL; + stp->str_state = 0; stp->str_com = (caddr_t)zs; zss->sl_xhead = NULL; @@ -600,7 +599,7 @@ zsh_open(queue_t *rq, dev_t *dev, int flag, int sflag, cred_t *cr) } else { /* CLONEOPEN */ mutex_enter(&zs_curr_lock); for (unit = maxzsh; unit < MAXZSHCLONES; unit++) - if (!zsh_usedminor[unit]) { + if (zsh_usedminor[unit] == '\0') { zsh_usedminor[unit] = (unsigned char)unit; break; } @@ -804,7 +803,7 @@ out: static int zsh_hdp_ok_or_rts_state(struct zscom *zs, struct syncline *zss) { - register uchar_t s0; + uchar_t s0; SCC_BIS(15, ZSR15_CTS); SCC_BIS(5, ZSWR5_RTS); @@ -827,14 +826,14 @@ zsh_hdp_ok_or_rts_state(struct zscom *zs, struct syncline *zss) static void zsh_wput(queue_t *wq, mblk_t *mp) { - register struct ser_str *stp = (struct ser_str *)wq->q_ptr; - register struct zscom *zs; - register struct syncline *zss = NULL; - register ulong_t prim, error = 0; - register union DL_primitives *dlp; - register int ppa; - register mblk_t *tmp; - register struct copyresp *resp; + struct ser_str *stp = (struct ser_str *)wq->q_ptr; + struct zscom *zs; + struct syncline *zss = NULL; + ulong_t prim, error = 0; + union DL_primitives *dlp; + int ppa; + mblk_t *tmp; + struct copyresp *resp; /* * stp->str_com supplied by open or DLPI attach. @@ -907,7 +906,7 @@ zsh_wput(queue_t *wq, mblk_t *mp) (void) zsh_softint(zs); } while (mp->b_wptr == mp->b_rptr) { - register mblk_t *mp1; + mblk_t *mp1; mp1 = unlinkb(mp); freemsg(mp); mp = mp1; @@ -929,7 +928,7 @@ zsh_wput(queue_t *wq, mblk_t *mp) } tmp = NULL; again: - if (!zss->sl_xstandby) { + if (zss->sl_xstandby == NULL) { if (tmp) zss->sl_xstandby = tmp; else { @@ -955,7 +954,7 @@ again: return; } - if (!zss->sl_wd_id) { + if (zss->sl_wd_id == NULL) { zss->sl_wd_count = zsh_timer_count; zss->sl_txstate = TX_IDLE; mutex_exit(zs->zs_excl_hi); @@ -1060,7 +1059,7 @@ end_proto: error = zsh_setmode(zs, zss, (struct scc_mode *)mp->b_cont->b_rptr); if (error) { - register struct iocblk *iocp = + struct iocblk *iocp = (struct iocblk *)mp->b_rptr; mp->b_datap->db_type = M_IOCNAK; iocp->ioc_error = error; @@ -1133,10 +1132,10 @@ end_proto: static int zsh_start(struct zscom *zs, struct syncline *zss) { - register mblk_t *mp; - register uchar_t *wptr; - register uchar_t *rptr; - register uchar_t sl_flags = zss->sl_flags; + mblk_t *mp; + uchar_t *wptr; + uchar_t *rptr; + uchar_t sl_flags = zss->sl_flags; /* * Attempt to grab the next M_DATA message off the queue (that's @@ -1176,7 +1175,7 @@ zsh_start(struct zscom *zs, struct syncline *zss) if (!(sl_flags & SF_FDXPTP)) { sl_flags |= SF_PHONY; ZSH_ALLOCB(mp); - if (!mp) + if (mp == NULL) return (0); mp->b_datap->db_type = M_RSE; mp->b_wptr = mp->b_rptr + 1; @@ -1232,15 +1231,15 @@ transmit: static void zsh_ioctl(queue_t *wq, mblk_t *mp) { - register struct ser_str *stp = (struct ser_str *)wq->q_ptr; - register struct zscom *zs = (struct zscom *)stp->str_com; - register struct syncline *zss = (struct syncline *)&zs->zs_priv_str; - register struct iocblk *iocp = (struct iocblk *)mp->b_rptr; - register struct scc_mode *sm; - register struct sl_stats *st; - register uchar_t *msignals; - register mblk_t *tmp; - register int error = 0; + struct ser_str *stp = (struct ser_str *)wq->q_ptr; + struct zscom *zs = (struct zscom *)stp->str_com; + struct syncline *zss = (struct syncline *)&zs->zs_priv_str; + struct iocblk *iocp = (struct iocblk *)mp->b_rptr; + struct scc_mode *sm; + struct sl_stats *st; + uchar_t *msignals; + mblk_t *tmp; + int error = 0; mutex_enter(zs->zs_excl); if ((zs->zs_ops != &zsops_null) && @@ -1389,8 +1388,8 @@ end_zsh_ioctl: int zsh_setmode(struct zscom *zs, struct syncline *zss, struct scc_mode *sm) { - register int error = 0; - register mblk_t *mp; + int error = 0; + mblk_t *mp; mutex_enter(zs->zs_excl_hi); if (sm->sm_rxclock == RXC_IS_PLL) { @@ -1450,10 +1449,10 @@ zsh_setmode(struct zscom *zs, struct syncline *zss, struct scc_mode *sm) static void zsh_txint(struct zscom *zs) { - register struct syncline *zss; - register mblk_t *mp; - register int tmp; - register uchar_t *wr_cur; + struct syncline *zss; + mblk_t *mp; + int tmp; + uchar_t *wr_cur; TRACE_1(TR_ZSH, TR_ZSH_TXINT, "zsh_txint: zs = %p", zs); @@ -1480,7 +1479,7 @@ again_txint: if (mp) { zss->sl_xactb = mp; zss->sl_ocnt += tmp = mp->b_wptr - mp->b_rptr; - if (!tmp) + if (tmp == 0) goto again_txint; zs->zs_wr_cur = mp->b_rptr; zs->zs_wr_lim = mp->b_wptr; @@ -1563,8 +1562,8 @@ again_txint: static void zsh_xsint(struct zscom *zs) { - register struct syncline *zss = (struct syncline *)&zs->zs_priv_str; - register uchar_t s0, x0; + struct syncline *zss = (struct syncline *)&zs->zs_priv_str; + uchar_t s0, x0; TRACE_1(TR_ZSH, TR_ZSH_XSINT, "zsh_xsint: zs = %p", zs); @@ -1676,8 +1675,8 @@ zsh_xsint(struct zscom *zs) static void zsh_rxint(struct zscom *zs) { - register struct syncline *zss = (struct syncline *)&zs->zs_priv_str; - register mblk_t *bp = zss->sl_ractb; + struct syncline *zss = (struct syncline *)&zs->zs_priv_str; + mblk_t *bp = zss->sl_ractb; unsigned char *rd_cur; TRACE_1(TR_ZSH, TR_ZSH_RXINT, "zsh_rxint: zs = %p", zs); @@ -1688,8 +1687,8 @@ zsh_rxint(struct zscom *zs) return; } - if (!rd_cur) { /* Beginning of frame */ - if (!bp) { + if (rd_cur == NULL) { /* Beginning of frame */ + if (bp == NULL) { ZSH_ALLOCB(bp); zss->sl_ractb = bp; } @@ -1699,7 +1698,7 @@ zsh_rxint(struct zscom *zs) ZSH_ALLOCB(bp->b_cont); bp = zss->sl_ractb = bp->b_cont; } - if (!bp) { + if (bp == NULL) { zss->sl_st.nobuffers++; zsh_rxbad(zs, zss); return; @@ -1716,9 +1715,9 @@ zsh_rxint(struct zscom *zs) static void zsh_srint(struct zscom *zs) { - register struct syncline *zss = (struct syncline *)&zs->zs_priv_str; - register uchar_t s1; - register uchar_t *rd_cur; + struct syncline *zss = (struct syncline *)&zs->zs_priv_str; + uchar_t s1; + uchar_t *rd_cur; TRACE_1(TR_ZSH, TR_ZSH_SRINT, "zsh_srint: zs = %p", zs); @@ -1768,18 +1767,18 @@ zsh_srint(struct zscom *zs) static int zsh_softint(struct zscom *zs) { - register struct syncline *zss; - register queue_t *q; - register mblk_t *mp, *tmp; - register mblk_t *head = NULL, *tail = NULL; - register int allocbcount = 0; + struct syncline *zss; + queue_t *q; + mblk_t *mp, *tmp; + mblk_t *head = NULL, *tail = NULL; + int allocbcount = 0; int m_error; TRACE_1(TR_ZSH, TR_ZSH_SOFT_START, "zsh_soft start: zs = %p", zs); mutex_enter(zs->zs_excl); zss = (struct syncline *)zs->zs_priv; - if (!zss || (q = zss->sl_stream.str_rq) == NULL) { + if (zss == NULL || (q = zss->sl_stream.str_rq) == NULL) { mutex_exit(zs->zs_excl); return (0); } @@ -1788,7 +1787,7 @@ zsh_softint(struct zscom *zs) zss->sl_m_error = 0; - if (!zss->sl_mstat) + if (zss->sl_mstat == NULL) zss->sl_mstat = allocb(sizeof (struct sl_status), BPRI_MED); mutex_enter(zs->zs_excl_hi); @@ -1796,7 +1795,7 @@ zsh_softint(struct zscom *zs) if (!(zss->sl_flags & SF_FDXPTP)) { zss->sl_flags &= ~SF_FLUSH_WQ; } else { - register uchar_t s0; + uchar_t s0; s0 = SCC_READ0(); if (s0 & ZSRR0_CTS) { @@ -1817,7 +1816,7 @@ zsh_softint(struct zscom *zs) next: for (;;) { ZSH_GETQ(mp); - if (!mp) + if (mp == NULL) break; if (mp->b_rptr == mp->b_wptr) { @@ -1842,12 +1841,12 @@ next: continue; } } - if (!head) { + if (head == NULL) { allocbcount++; zss->sl_soft_active = 1; head = mp; } else { - if (!tail) + if (tail == NULL) tail = head; tail->b_next = mp; tail = mp; @@ -1859,7 +1858,7 @@ next: tmp = NULL; again: mutex_enter(zs->zs_excl_hi); - if (!zss->sl_xstandby) { + if (zss->sl_xstandby == NULL) { if (tmp) { zss->sl_xstandby = tmp; mutex_exit(zs->zs_excl_hi); @@ -1877,7 +1876,7 @@ again: mutex_exit(zs->zs_excl); while (head) { - if (!tail) { + if (tail == NULL) { putnext(q, head); break; } @@ -1905,14 +1904,14 @@ again: static int zsh_program(struct zscom *zs, struct scc_mode *sm) { - register struct syncline *zss = (struct syncline *)&zs->zs_priv_str; - register struct zs_prog *zspp; - register ushort_t tconst = 0; - register int wr11 = 0; - register int baud = 0; - register int pll = 0; - register int speed = 0; - register int flags = ZSP_SYNC; + struct syncline *zss = (struct syncline *)&zs->zs_priv_str; + struct zs_prog *zspp; + ushort_t tconst = 0; + int wr11 = 0; + int baud = 0; + int pll = 0; + int speed = 0; + int flags = ZSP_SYNC; int err = 0; ZSSETSOFT(zs); /* get our house in order */ @@ -2060,9 +2059,9 @@ out: static void zsh_setmstat(struct zscom *zs, int event) { - register struct syncline *zss = (struct syncline *)&zs->zs_priv_str; - register struct sl_status *mstat; - register mblk_t *mp; + struct syncline *zss = (struct syncline *)&zs->zs_priv_str; + struct sl_status *mstat; + mblk_t *mp; if (((mp = zss->sl_mstat) != NULL) && (zss->sl_mode.sm_config & (CONN_SIGNAL))) { diff --git a/usr/src/uts/sun4u/zsh/Makefile b/usr/src/uts/sun4u/zsh/Makefile index dfefb38063..22dac14bcb 100644 --- a/usr/src/uts/sun4u/zsh/Makefile +++ b/usr/src/uts/sun4u/zsh/Makefile @@ -39,7 +39,6 @@ UTSBASE = ../.. # MODULE = zsh OBJECTS = $(ZSH_OBJS:%=$(OBJS_DIR)/%) -LINTS = $(ZSH_OBJS:%.o=$(LINTS_DIR)/%.ln) ROOTMODULE = $(ROOT_PSM_DRV_DIR)/$(MODULE) CONF_SRCDIR = $(UTSBASE)/sun/io @@ -52,28 +51,13 @@ include $(UTSBASE)/sun4u/Makefile.sun4u # Define targets # ALL_TARGET = $(BINARY) $(SRC_CONFILE) -LINT_TARGET = $(MODULE).lint INSTALL_TARGET = $(BINARY) $(ROOTMODULE) $(ROOT_CONFFILE) # -# lint pass one enforcement -# -CFLAGS += $(CCVERBOSE) - -# # Defined dependency on zs # LDFLAGS += -dy -N drv/zs -# -# For now, disable these lint checks; maintainers should endeavor -# to investigate and remove these for maximum lint coverage. -# Please do not carry these forward to new Makefiles. -# -LINTTAGS += -erroff=E_BAD_PTR_CAST_ALIGN -LINTTAGS += -erroff=E_ASSIGN_NARROW_CONV -LINTTAGS += -erroff=E_PTRDIFF_OVERFLOW - CERRWARN += -_gcc=-Wno-parentheses # @@ -89,12 +73,6 @@ clean: $(CLEAN_DEPS) clobber: $(CLOBBER_DEPS) -lint: $(LINT_DEPS) - -modlintlib: $(MODLINTLIB_DEPS) - -clean.lint: $(CLEAN_LINT_DEPS) - install: $(INSTALL_DEPS) # |