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'; \
                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));
 }
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to