Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Feb 2017 06:24:39 +0000 (UTC)
From:      Ngie Cooper <ngie@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r314189 - head/lib/libcam
Message-ID:  <201702240624.v1O6OdRr094467@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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));
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201702240624.v1O6OdRr094467>