Address warnings found by clang.
MFC after: 3 months.
This commit is contained in:
parent
7853817de3
commit
5dc6a81580
@ -245,7 +245,8 @@ sctp_bindx(int sd, struct sockaddr *addrs, int addrcnt, int flags)
|
|||||||
struct sockaddr *sa;
|
struct sockaddr *sa;
|
||||||
struct sockaddr_in *sin;
|
struct sockaddr_in *sin;
|
||||||
struct sockaddr_in6 *sin6;
|
struct sockaddr_in6 *sin6;
|
||||||
int i, sz, argsz;
|
int i;
|
||||||
|
size_t argsz;
|
||||||
uint16_t sport = 0;
|
uint16_t sport = 0;
|
||||||
|
|
||||||
/* validate the flags */
|
/* validate the flags */
|
||||||
@ -269,7 +270,6 @@ sctp_bindx(int sd, struct sockaddr *addrs, int addrcnt, int flags)
|
|||||||
/* First pre-screen the addresses */
|
/* First pre-screen the addresses */
|
||||||
sa = addrs;
|
sa = addrs;
|
||||||
for (i = 0; i < addrcnt; i++) {
|
for (i = 0; i < addrcnt; i++) {
|
||||||
sz = sa->sa_len;
|
|
||||||
if (sa->sa_family == AF_INET) {
|
if (sa->sa_family == AF_INET) {
|
||||||
if (sa->sa_len != sizeof(struct sockaddr_in))
|
if (sa->sa_len != sizeof(struct sockaddr_in))
|
||||||
goto out_error;
|
goto out_error;
|
||||||
@ -307,7 +307,7 @@ sctp_bindx(int sd, struct sockaddr *addrs, int addrcnt, int flags)
|
|||||||
goto out_error;
|
goto out_error;
|
||||||
}
|
}
|
||||||
|
|
||||||
sa = (struct sockaddr *)((caddr_t)sa + sz);
|
sa = (struct sockaddr *)((caddr_t)sa + sa->sa_len);
|
||||||
}
|
}
|
||||||
sa = addrs;
|
sa = addrs;
|
||||||
/*
|
/*
|
||||||
@ -319,7 +319,6 @@ sctp_bindx(int sd, struct sockaddr *addrs, int addrcnt, int flags)
|
|||||||
sin->sin_port = sport;
|
sin->sin_port = sport;
|
||||||
}
|
}
|
||||||
for (i = 0; i < addrcnt; i++) {
|
for (i = 0; i < addrcnt; i++) {
|
||||||
sz = sa->sa_len;
|
|
||||||
if (sa->sa_family == AF_INET) {
|
if (sa->sa_family == AF_INET) {
|
||||||
if (sa->sa_len != sizeof(struct sockaddr_in))
|
if (sa->sa_len != sizeof(struct sockaddr_in))
|
||||||
goto out_error;
|
goto out_error;
|
||||||
@ -335,13 +334,13 @@ sctp_bindx(int sd, struct sockaddr *addrs, int addrcnt, int flags)
|
|||||||
}
|
}
|
||||||
memset(gaddrs, 0, argsz);
|
memset(gaddrs, 0, argsz);
|
||||||
gaddrs->sget_assoc_id = 0;
|
gaddrs->sget_assoc_id = 0;
|
||||||
memcpy(gaddrs->addr, sa, sz);
|
memcpy(gaddrs->addr, sa, sa->sa_len);
|
||||||
if (setsockopt(sd, IPPROTO_SCTP, flags, gaddrs,
|
if (setsockopt(sd, IPPROTO_SCTP, flags, gaddrs,
|
||||||
(socklen_t) argsz) != 0) {
|
(socklen_t) argsz) != 0) {
|
||||||
free(gaddrs);
|
free(gaddrs);
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
sa = (struct sockaddr *)((caddr_t)sa + sz);
|
sa = (struct sockaddr *)((caddr_t)sa + sa->sa_len);
|
||||||
}
|
}
|
||||||
free(gaddrs);
|
free(gaddrs);
|
||||||
return (0);
|
return (0);
|
||||||
@ -430,10 +429,9 @@ sctp_getpaddrs(int sd, sctp_assoc_t id, struct sockaddr **raddrs)
|
|||||||
{
|
{
|
||||||
struct sctp_getaddresses *addrs;
|
struct sctp_getaddresses *addrs;
|
||||||
struct sockaddr *sa;
|
struct sockaddr *sa;
|
||||||
struct sockaddr *re;
|
|
||||||
sctp_assoc_t asoc;
|
sctp_assoc_t asoc;
|
||||||
caddr_t lim;
|
caddr_t lim;
|
||||||
socklen_t siz;
|
socklen_t opt_len;
|
||||||
int cnt;
|
int cnt;
|
||||||
|
|
||||||
if (raddrs == NULL) {
|
if (raddrs == NULL) {
|
||||||
@ -441,30 +439,28 @@ sctp_getpaddrs(int sd, sctp_assoc_t id, struct sockaddr **raddrs)
|
|||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
asoc = id;
|
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,
|
if (getsockopt(sd, IPPROTO_SCTP, SCTP_GET_REMOTE_ADDR_SIZE,
|
||||||
&asoc, &siz) != 0) {
|
&asoc, &opt_len) != 0) {
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
/* size required is returned in 'asoc' */
|
/* size required is returned in 'asoc' */
|
||||||
siz = (size_t)asoc;
|
opt_len = (socklen_t) ((size_t)asoc + sizeof(struct sctp_getaddresses));
|
||||||
siz += sizeof(struct sctp_getaddresses);
|
addrs = calloc(1, (size_t)opt_len);
|
||||||
addrs = calloc(1, siz);
|
|
||||||
if (addrs == NULL) {
|
if (addrs == NULL) {
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
addrs->sget_assoc_id = id;
|
addrs->sget_assoc_id = id;
|
||||||
/* Now lets get the array of addresses */
|
/* Now lets get the array of addresses */
|
||||||
if (getsockopt(sd, IPPROTO_SCTP, SCTP_GET_PEER_ADDRESSES,
|
if (getsockopt(sd, IPPROTO_SCTP, SCTP_GET_PEER_ADDRESSES,
|
||||||
addrs, &siz) != 0) {
|
addrs, &opt_len) != 0) {
|
||||||
free(addrs);
|
free(addrs);
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
re = (struct sockaddr *)&addrs->addr[0];
|
*raddrs = (struct sockaddr *)&addrs->addr[0];
|
||||||
*raddrs = re;
|
|
||||||
cnt = 0;
|
cnt = 0;
|
||||||
sa = (struct sockaddr *)&addrs->addr[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)) {
|
while (((caddr_t)sa < lim) && (sa->sa_len > 0)) {
|
||||||
sa = (struct sockaddr *)((caddr_t)sa + sa->sa_len);
|
sa = (struct sockaddr *)((caddr_t)sa + sa->sa_len);
|
||||||
cnt++;
|
cnt++;
|
||||||
@ -487,11 +483,10 @@ int
|
|||||||
sctp_getladdrs(int sd, sctp_assoc_t id, struct sockaddr **raddrs)
|
sctp_getladdrs(int sd, sctp_assoc_t id, struct sockaddr **raddrs)
|
||||||
{
|
{
|
||||||
struct sctp_getaddresses *addrs;
|
struct sctp_getaddresses *addrs;
|
||||||
struct sockaddr *re;
|
|
||||||
caddr_t lim;
|
caddr_t lim;
|
||||||
struct sockaddr *sa;
|
struct sockaddr *sa;
|
||||||
int size_of_addresses;
|
size_t size_of_addresses;
|
||||||
socklen_t siz;
|
socklen_t opt_len;
|
||||||
int cnt;
|
int cnt;
|
||||||
|
|
||||||
if (raddrs == NULL) {
|
if (raddrs == NULL) {
|
||||||
@ -499,9 +494,9 @@ sctp_getladdrs(int sd, sctp_assoc_t id, struct sockaddr **raddrs)
|
|||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
size_of_addresses = 0;
|
size_of_addresses = 0;
|
||||||
siz = sizeof(int);
|
opt_len = (socklen_t) sizeof(int);
|
||||||
if (getsockopt(sd, IPPROTO_SCTP, SCTP_GET_LOCAL_ADDR_SIZE,
|
if (getsockopt(sd, IPPROTO_SCTP, SCTP_GET_LOCAL_ADDR_SIZE,
|
||||||
&size_of_addresses, &siz) != 0) {
|
&size_of_addresses, &opt_len) != 0) {
|
||||||
errno = ENOMEM;
|
errno = ENOMEM;
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
@ -509,9 +504,10 @@ sctp_getladdrs(int sd, sctp_assoc_t id, struct sockaddr **raddrs)
|
|||||||
errno = ENOTCONN;
|
errno = ENOTCONN;
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
siz = size_of_addresses + sizeof(struct sockaddr_storage);
|
opt_len = (socklen_t) (size_of_addresses +
|
||||||
siz += sizeof(struct sctp_getaddresses);
|
sizeof(struct sockaddr_storage) +
|
||||||
addrs = calloc(1, siz);
|
sizeof(struct sctp_getaddresses));
|
||||||
|
addrs = calloc(1, (size_t)opt_len);
|
||||||
if (addrs == NULL) {
|
if (addrs == NULL) {
|
||||||
errno = ENOMEM;
|
errno = ENOMEM;
|
||||||
return (-1);
|
return (-1);
|
||||||
@ -519,16 +515,15 @@ sctp_getladdrs(int sd, sctp_assoc_t id, struct sockaddr **raddrs)
|
|||||||
addrs->sget_assoc_id = id;
|
addrs->sget_assoc_id = id;
|
||||||
/* Now lets get the array of addresses */
|
/* Now lets get the array of addresses */
|
||||||
if (getsockopt(sd, IPPROTO_SCTP, SCTP_GET_LOCAL_ADDRESSES, addrs,
|
if (getsockopt(sd, IPPROTO_SCTP, SCTP_GET_LOCAL_ADDRESSES, addrs,
|
||||||
&siz) != 0) {
|
&opt_len) != 0) {
|
||||||
free(addrs);
|
free(addrs);
|
||||||
errno = ENOMEM;
|
errno = ENOMEM;
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
re = (struct sockaddr *)&addrs->addr[0];
|
*raddrs = (struct sockaddr *)&addrs->addr[0];
|
||||||
*raddrs = re;
|
|
||||||
cnt = 0;
|
cnt = 0;
|
||||||
sa = (struct sockaddr *)&addrs->addr[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)) {
|
while (((caddr_t)sa < lim) && (sa->sa_len > 0)) {
|
||||||
sa = (struct sockaddr *)((caddr_t)sa + sa->sa_len);
|
sa = (struct sockaddr *)((caddr_t)sa + sa->sa_len);
|
||||||
cnt++;
|
cnt++;
|
||||||
@ -735,7 +730,8 @@ sctp_sendx(int sd, const void *msg, size_t msg_len,
|
|||||||
ssize_t ret;
|
ssize_t ret;
|
||||||
int i, cnt, *aa, saved_errno;
|
int i, cnt, *aa, saved_errno;
|
||||||
char *buf;
|
char *buf;
|
||||||
int add_len, len, no_end_cx = 0;
|
int no_end_cx = 0;
|
||||||
|
size_t len, add_len;
|
||||||
struct sockaddr *at;
|
struct sockaddr *at;
|
||||||
|
|
||||||
if (addrs == NULL) {
|
if (addrs == NULL) {
|
||||||
@ -785,7 +781,7 @@ sctp_sendx(int sd, const void *msg, size_t msg_len,
|
|||||||
aa = (int *)buf;
|
aa = (int *)buf;
|
||||||
*aa = cnt;
|
*aa = cnt;
|
||||||
aa++;
|
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,
|
ret = setsockopt(sd, IPPROTO_SCTP, SCTP_CONNECT_X_DELAYED, (void *)buf,
|
||||||
(socklen_t) len);
|
(socklen_t) len);
|
||||||
|
|
||||||
@ -862,7 +858,6 @@ sctp_recvmsg(int s,
|
|||||||
#else
|
#else
|
||||||
struct sctp_sndrcvinfo *s_info;
|
struct sctp_sndrcvinfo *s_info;
|
||||||
ssize_t sz;
|
ssize_t sz;
|
||||||
int sinfo_found = 0;
|
|
||||||
struct msghdr msg;
|
struct msghdr msg;
|
||||||
struct iovec iov;
|
struct iovec iov;
|
||||||
char controlVector[SCTP_CONTROL_VEC_SIZE_RCV];
|
char controlVector[SCTP_CONTROL_VEC_SIZE_RCV];
|
||||||
@ -891,7 +886,6 @@ sctp_recvmsg(int s,
|
|||||||
return (sz);
|
return (sz);
|
||||||
}
|
}
|
||||||
s_info = NULL;
|
s_info = NULL;
|
||||||
len = sz;
|
|
||||||
if (sinfo) {
|
if (sinfo) {
|
||||||
sinfo->sinfo_assoc_id = 0;
|
sinfo->sinfo_assoc_id = 0;
|
||||||
}
|
}
|
||||||
@ -912,7 +906,6 @@ sctp_recvmsg(int s,
|
|||||||
/* Copy it to the user */
|
/* Copy it to the user */
|
||||||
if (sinfo)
|
if (sinfo)
|
||||||
*sinfo = *s_info;
|
*sinfo = *s_info;
|
||||||
sinfo_found = 1;
|
|
||||||
break;
|
break;
|
||||||
} else if (cmsg->cmsg_type == SCTP_EXTRCV) {
|
} else if (cmsg->cmsg_type == SCTP_EXTRCV) {
|
||||||
/*
|
/*
|
||||||
@ -925,7 +918,6 @@ sctp_recvmsg(int s,
|
|||||||
if (sinfo) {
|
if (sinfo) {
|
||||||
memcpy(sinfo, s_info, sizeof(struct sctp_extrcvinfo));
|
memcpy(sinfo, s_info, sizeof(struct sctp_extrcvinfo));
|
||||||
}
|
}
|
||||||
sinfo_found = 1;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1058,7 +1050,7 @@ sctp_sendv(int sd,
|
|||||||
cmsgbuf = malloc(CMSG_SPACE(sizeof(struct sctp_sndinfo)) +
|
cmsgbuf = malloc(CMSG_SPACE(sizeof(struct sctp_sndinfo)) +
|
||||||
CMSG_SPACE(sizeof(struct sctp_prinfo)) +
|
CMSG_SPACE(sizeof(struct sctp_prinfo)) +
|
||||||
CMSG_SPACE(sizeof(struct sctp_authinfo)) +
|
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) {
|
if (cmsgbuf == NULL) {
|
||||||
errno = ENOBUFS;
|
errno = ENOBUFS;
|
||||||
return (-1);
|
return (-1);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user