Date: Fri, 24 Feb 2017 08:36:33 -0700 From: Ian Lepore <ian@freebsd.org> To: Ngie Cooper <ngie@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r314189 - head/lib/libcam Message-ID: <1487950593.25520.20.camel@freebsd.org> In-Reply-To: <201702240624.v1O6OdRr094467@repo.freebsd.org> References: <201702240624.v1O6OdRr094467@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 2017-02-24 at 06:24 +0000, Ngie Cooper wrote: > Author: ngie > Date: Fri Feb 24 06:24:39 2017 > New Revision: 314189 > URL: https://svnweb.freebsd.org/changeset/base/314189 > > Log: > Fix up NULL/'\0' uses and fix 2 derefs after NULL > > MFC after: 2 weeks > Reported by: Coverity > CID: 1018898, 1018899 > Differential Revision: https://reviews.freebsd.org/D6142 > Sponsored by: Dell EMC Isilon > > Modified: > head/lib/libcam/scsi_cmdparse.c > > Modified: head/lib/libcam/scsi_cmdparse.c > ===================================================================== > ========= > --- head/lib/libcam/scsi_cmdparse.c Fri Feb 24 01:39:12 2017 > (r314188) > +++ head/lib/libcam/scsi_cmdparse.c Fri Feb 24 06:24:39 2017 > (r314189) > @@ -128,14 +128,14 @@ do_buff_decode(u_int8_t *buff, size_t le > *(va_arg(*ap, int *)) = (ARG); \ > assigned++; \ > } \ > - field_name[0] = 0; \ > + field_name[0] = '\0'; \ Is coverity seriously complaining about using 0 instead of '\0'? What possible *real* benefit (not just shutting up coverity) does this churn bring? -- Ian > suppress = 0; \ > } while (0) > > u_char bits = 0; /* For bit fields */ > int shift = 0; /* Bits already shifted out */ > suppress = 0; > - field_name[0] = 0; > + field_name[0] = '\0'; > > while (!done) { > switch(letter = *fmt) { > @@ -169,9 +169,9 @@ do_buff_decode(u_int8_t *buff, size_t le > > fmt++; > } > - if (fmt) > + if (*fmt == '\0') > fmt++; /* Skip '}' */ > - field_name[i] = 0; > + field_name[i] = '\0'; > break; > } > > @@ -255,7 +255,7 @@ do_buff_decode(u_int8_t *buff, size_t le > break; > } > if (!suppress) { > - if (arg_put) > + if (arg_put != NULL) > (*arg_put)(puthook, > (letter == 't' ? 'b' : > letter), > &buff[ind], width, > field_name); > @@ -268,7 +268,7 @@ do_buff_decode(u_int8_t *buff, size_t le > for (p = dest + > width - 1; > p >= dest && *p > == ' '; > p--) > - *p = 0; > + *p = '\0'; > } > } > assigned++; > @@ -379,22 +379,22 @@ next_field(const char **pp, char *fmt, i > field_size = 8; /* Default to byte field > type... */ > *fmt = 'i'; > field_width = 1; /* 1 byte wide */ > - if (name) > - *name = 0; > + if (name != NULL) > + *name = '\0'; > > state = BETWEEN_FIELDS; > > while (state != DONE) { > switch(state) { > case BETWEEN_FIELDS: > - if (*p == 0) > + if (*p == '\0') > state = DONE; > else if (isspace(*p)) > p++; > else if (*p == '#') { > while (*p && *p != '\n') > p++; > - if (p) > + if (*p != '\0') > p++; > } else if (*p == '{') { > int i = 0; > @@ -410,7 +410,7 @@ next_field(const char **pp, char *fmt, i > } > > if(name && i < n_name) > - name[i] = 0; > + name[i] = '\0'; > > if (*p == '}') > p++; > @@ -568,7 +568,7 @@ do_encode(u_char *buff, size_t vec_max, > if (suppress) > value = 0; > else > - value = arg_get ? > + value = arg_get != NULL ? > (*arg_get)(gethook, > field_name) : > va_arg(*ap, int); > } > @@ -672,8 +672,8 @@ csio_decode(struct ccb_scsiio *csio, con > > va_start(ap, fmt); > > - retval = do_buff_decode(csio->data_ptr, (size_t)csio- > >dxfer_len, 0, 0, > - fmt, &ap); > + retval = do_buff_decode(csio->data_ptr, (size_t)csio- > >dxfer_len, > + NULL, NULL, fmt, &ap); > > va_end(ap); > > @@ -705,7 +705,7 @@ buff_decode(u_int8_t *buff, size_t len, > > va_start(ap, fmt); > > - retval = do_buff_decode(buff, len, 0, 0, fmt, &ap); > + retval = do_buff_decode(buff, len, NULL, NULL, fmt, &ap); > > va_end(ap); > > @@ -819,7 +819,8 @@ csio_encode(struct ccb_scsiio *csio, con > > va_start(ap, fmt); > > - retval = do_encode(csio->data_ptr, csio->dxfer_len, 0, 0, 0, > fmt, &ap); > + retval = do_encode(csio->data_ptr, csio->dxfer_len, NULL, > NULL, NULL, > + fmt, &ap); > > va_end(ap); > > @@ -838,7 +839,7 @@ buff_encode_visit(u_int8_t *buff, size_t > if (arg_get == NULL) > return(-1); > > - return (do_encode(buff, len, 0, arg_get, gethook, fmt, > NULL)); > + return (do_encode(buff, len, NULL, arg_get, gethook, fmt, > NULL)); > } > > int > @@ -853,6 +854,6 @@ csio_encode_visit(struct ccb_scsiio *csi > if (arg_get == NULL) > return(-1); > > - return (do_encode(csio->data_ptr, csio->dxfer_len, 0, > arg_get, > + return (do_encode(csio->data_ptr, csio->dxfer_len, NULL, > arg_get, > gethook, fmt, NULL)); > } >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1487950593.25520.20.camel>