svn commit: r228630 - head/lib/libc/net

Michael Tuexen tuexen at FreeBSD.org
Sat Dec 17 14:55:20 UTC 2011


Author: tuexen
Date: Sat Dec 17 14:55:19 2011
New Revision: 228630
URL: http://svn.freebsd.org/changeset/base/228630

Log:
  Address warnings found by clang.
  
  MFC after: 3 months.

Modified:
  head/lib/libc/net/sctp_sys_calls.c

Modified: head/lib/libc/net/sctp_sys_calls.c
==============================================================================
--- head/lib/libc/net/sctp_sys_calls.c	Sat Dec 17 14:51:24 2011	(r228629)
+++ head/lib/libc/net/sctp_sys_calls.c	Sat Dec 17 14:55:19 2011	(r228630)
@@ -245,7 +245,8 @@ sctp_bindx(int sd, struct sockaddr *addr
 	struct sockaddr *sa;
 	struct sockaddr_in *sin;
 	struct sockaddr_in6 *sin6;
-	int i, sz, argsz;
+	int i;
+	size_t argsz;
 	uint16_t sport = 0;
 
 	/* validate the flags */
@@ -269,7 +270,6 @@ sctp_bindx(int sd, struct sockaddr *addr
 	/* First pre-screen the addresses */
 	sa = addrs;
 	for (i = 0; i < addrcnt; i++) {
-		sz = sa->sa_len;
 		if (sa->sa_family == AF_INET) {
 			if (sa->sa_len != sizeof(struct sockaddr_in))
 				goto out_error;
@@ -307,7 +307,7 @@ sctp_bindx(int sd, struct sockaddr *addr
 			goto out_error;
 		}
 
-		sa = (struct sockaddr *)((caddr_t)sa + sz);
+		sa = (struct sockaddr *)((caddr_t)sa + sa->sa_len);
 	}
 	sa = addrs;
 	/*
@@ -319,7 +319,6 @@ sctp_bindx(int sd, struct sockaddr *addr
 		sin->sin_port = sport;
 	}
 	for (i = 0; i < addrcnt; i++) {
-		sz = sa->sa_len;
 		if (sa->sa_family == AF_INET) {
 			if (sa->sa_len != sizeof(struct sockaddr_in))
 				goto out_error;
@@ -335,13 +334,13 @@ sctp_bindx(int sd, struct sockaddr *addr
 		}
 		memset(gaddrs, 0, argsz);
 		gaddrs->sget_assoc_id = 0;
-		memcpy(gaddrs->addr, sa, sz);
+		memcpy(gaddrs->addr, sa, sa->sa_len);
 		if (setsockopt(sd, IPPROTO_SCTP, flags, gaddrs,
 		    (socklen_t) argsz) != 0) {
 			free(gaddrs);
 			return (-1);
 		}
-		sa = (struct sockaddr *)((caddr_t)sa + sz);
+		sa = (struct sockaddr *)((caddr_t)sa + sa->sa_len);
 	}
 	free(gaddrs);
 	return (0);
@@ -430,10 +429,9 @@ sctp_getpaddrs(int sd, sctp_assoc_t id, 
 {
 	struct sctp_getaddresses *addrs;
 	struct sockaddr *sa;
-	struct sockaddr *re;
 	sctp_assoc_t asoc;
 	caddr_t lim;
-	socklen_t siz;
+	socklen_t opt_len;
 	int cnt;
 
 	if (raddrs == NULL) {
@@ -441,30 +439,28 @@ sctp_getpaddrs(int sd, sctp_assoc_t id, 
 		return (-1);
 	}
 	asoc = id;
-	siz = sizeof(sctp_assoc_t);
+	opt_len = (socklen_t) sizeof(sctp_assoc_t);
 	if (getsockopt(sd, IPPROTO_SCTP, SCTP_GET_REMOTE_ADDR_SIZE,
-	    &asoc, &siz) != 0) {
+	    &asoc, &opt_len) != 0) {
 		return (-1);
 	}
 	/* size required is returned in 'asoc' */
-	siz = (size_t)asoc;
-	siz += sizeof(struct sctp_getaddresses);
-	addrs = calloc(1, siz);
+	opt_len = (socklen_t) ((size_t)asoc + sizeof(struct sctp_getaddresses));
+	addrs = calloc(1, (size_t)opt_len);
 	if (addrs == NULL) {
 		return (-1);
 	}
 	addrs->sget_assoc_id = id;
 	/* Now lets get the array of addresses */
 	if (getsockopt(sd, IPPROTO_SCTP, SCTP_GET_PEER_ADDRESSES,
-	    addrs, &siz) != 0) {
+	    addrs, &opt_len) != 0) {
 		free(addrs);
 		return (-1);
 	}
-	re = (struct sockaddr *)&addrs->addr[0];
-	*raddrs = re;
+	*raddrs = (struct sockaddr *)&addrs->addr[0];
 	cnt = 0;
 	sa = (struct sockaddr *)&addrs->addr[0];
-	lim = (caddr_t)addrs + siz;
+	lim = (caddr_t)addrs + opt_len;
 	while (((caddr_t)sa < lim) && (sa->sa_len > 0)) {
 		sa = (struct sockaddr *)((caddr_t)sa + sa->sa_len);
 		cnt++;
@@ -487,11 +483,10 @@ int
 sctp_getladdrs(int sd, sctp_assoc_t id, struct sockaddr **raddrs)
 {
 	struct sctp_getaddresses *addrs;
-	struct sockaddr *re;
 	caddr_t lim;
 	struct sockaddr *sa;
-	int size_of_addresses;
-	socklen_t siz;
+	size_t size_of_addresses;
+	socklen_t opt_len;
 	int cnt;
 
 	if (raddrs == NULL) {
@@ -499,9 +494,9 @@ sctp_getladdrs(int sd, sctp_assoc_t id, 
 		return (-1);
 	}
 	size_of_addresses = 0;
-	siz = sizeof(int);
+	opt_len = (socklen_t) sizeof(int);
 	if (getsockopt(sd, IPPROTO_SCTP, SCTP_GET_LOCAL_ADDR_SIZE,
-	    &size_of_addresses, &siz) != 0) {
+	    &size_of_addresses, &opt_len) != 0) {
 		errno = ENOMEM;
 		return (-1);
 	}
@@ -509,9 +504,10 @@ sctp_getladdrs(int sd, sctp_assoc_t id, 
 		errno = ENOTCONN;
 		return (-1);
 	}
-	siz = size_of_addresses + sizeof(struct sockaddr_storage);
-	siz += sizeof(struct sctp_getaddresses);
-	addrs = calloc(1, siz);
+	opt_len = (socklen_t) (size_of_addresses +
+	    sizeof(struct sockaddr_storage) +
+	    sizeof(struct sctp_getaddresses));
+	addrs = calloc(1, (size_t)opt_len);
 	if (addrs == NULL) {
 		errno = ENOMEM;
 		return (-1);
@@ -519,16 +515,15 @@ sctp_getladdrs(int sd, sctp_assoc_t id, 
 	addrs->sget_assoc_id = id;
 	/* Now lets get the array of addresses */
 	if (getsockopt(sd, IPPROTO_SCTP, SCTP_GET_LOCAL_ADDRESSES, addrs,
-	    &siz) != 0) {
+	    &opt_len) != 0) {
 		free(addrs);
 		errno = ENOMEM;
 		return (-1);
 	}
-	re = (struct sockaddr *)&addrs->addr[0];
-	*raddrs = re;
+	*raddrs = (struct sockaddr *)&addrs->addr[0];
 	cnt = 0;
 	sa = (struct sockaddr *)&addrs->addr[0];
-	lim = (caddr_t)addrs + siz;
+	lim = (caddr_t)addrs + opt_len;
 	while (((caddr_t)sa < lim) && (sa->sa_len > 0)) {
 		sa = (struct sockaddr *)((caddr_t)sa + sa->sa_len);
 		cnt++;
@@ -735,7 +730,8 @@ sctp_sendx(int sd, const void *msg, size
 	ssize_t ret;
 	int i, cnt, *aa, saved_errno;
 	char *buf;
-	int add_len, len, no_end_cx = 0;
+	int no_end_cx = 0;
+	size_t len, add_len;
 	struct sockaddr *at;
 
 	if (addrs == NULL) {
@@ -785,7 +781,7 @@ sctp_sendx(int sd, const void *msg, size
 	aa = (int *)buf;
 	*aa = cnt;
 	aa++;
-	memcpy((caddr_t)aa, addrs, (len - sizeof(int)));
+	memcpy((caddr_t)aa, addrs, (size_t)(len - sizeof(int)));
 	ret = setsockopt(sd, IPPROTO_SCTP, SCTP_CONNECT_X_DELAYED, (void *)buf,
 	    (socklen_t) len);
 
@@ -862,7 +858,6 @@ sctp_recvmsg(int s,
 #else
 	struct sctp_sndrcvinfo *s_info;
 	ssize_t sz;
-	int sinfo_found = 0;
 	struct msghdr msg;
 	struct iovec iov;
 	char controlVector[SCTP_CONTROL_VEC_SIZE_RCV];
@@ -891,7 +886,6 @@ sctp_recvmsg(int s,
 		return (sz);
 	}
 	s_info = NULL;
-	len = sz;
 	if (sinfo) {
 		sinfo->sinfo_assoc_id = 0;
 	}
@@ -912,7 +906,6 @@ sctp_recvmsg(int s,
 					/* Copy it to the user */
 					if (sinfo)
 						*sinfo = *s_info;
-					sinfo_found = 1;
 					break;
 				} else if (cmsg->cmsg_type == SCTP_EXTRCV) {
 					/*
@@ -925,7 +918,6 @@ sctp_recvmsg(int s,
 					if (sinfo) {
 						memcpy(sinfo, s_info, sizeof(struct sctp_extrcvinfo));
 					}
-					sinfo_found = 1;
 					break;
 
 				}
@@ -1058,7 +1050,7 @@ sctp_sendv(int sd,
 	cmsgbuf = malloc(CMSG_SPACE(sizeof(struct sctp_sndinfo)) +
 	    CMSG_SPACE(sizeof(struct sctp_prinfo)) +
 	    CMSG_SPACE(sizeof(struct sctp_authinfo)) +
-	    addrcnt * CMSG_SPACE(sizeof(struct in6_addr)));
+	    (size_t)addrcnt * CMSG_SPACE(sizeof(struct in6_addr)));
 	if (cmsgbuf == NULL) {
 		errno = ENOBUFS;
 		return (-1);


More information about the svn-src-head mailing list