From owner-svn-src-all@freebsd.org Fri Feb 24 15:36:41 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E60F0CEB2D9 for ; Fri, 24 Feb 2017 15:36:41 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from pmta2.delivery6.ore.mailhop.org (pmta2.delivery6.ore.mailhop.org [54.200.129.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CB7D6B37 for ; Fri, 24 Feb 2017 15:36:41 +0000 (UTC) (envelope-from ian@freebsd.org) X-MHO-User: f6a803a9-faa6-11e6-b3c2-c9f38144898e X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 73.78.92.27 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (unknown [73.78.92.27]) by outbound2.ore.mailhop.org (Halon) with ESMTPSA id f6a803a9-faa6-11e6-b3c2-c9f38144898e; Fri, 24 Feb 2017 15:36:09 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id v1OFaXX1003714; Fri, 24 Feb 2017 08:36:33 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: <1487950593.25520.20.camel@freebsd.org> Subject: Re: svn commit: r314189 - head/lib/libcam From: Ian Lepore To: Ngie Cooper , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Fri, 24 Feb 2017 08:36:33 -0700 In-Reply-To: <201702240624.v1O6OdRr094467@repo.freebsd.org> References: <201702240624.v1O6OdRr094467@repo.freebsd.org> Content-Type: text/plain; charset="ISO-8859-1" X-Mailer: Evolution 3.18.5.1 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Feb 2017 15:36:42 -0000 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)); >  } >