If a user calls sctp_sendx() with a NULL
sinfo we will crash. Instead we should provide our own temp structure to use internally. MFC after: 1 month
This commit is contained in:
parent
054d87d697
commit
335a2d00c4
@ -724,6 +724,7 @@ sctp_sendx(int sd, const void *msg, size_t msg_len,
|
|||||||
struct sctp_sndrcvinfo *sinfo,
|
struct sctp_sndrcvinfo *sinfo,
|
||||||
int flags)
|
int flags)
|
||||||
{
|
{
|
||||||
|
struct sctp_sndrcvinfo __sinfo;
|
||||||
ssize_t ret;
|
ssize_t ret;
|
||||||
int i, cnt, *aa, saved_errno;
|
int i, cnt, *aa, saved_errno;
|
||||||
char *buf;
|
char *buf;
|
||||||
@ -790,6 +791,10 @@ sctp_sendx(int sd, const void *msg, size_t msg_len,
|
|||||||
return (ret);
|
return (ret);
|
||||||
}
|
}
|
||||||
continue_send:
|
continue_send:
|
||||||
|
if (sinfo == NULL) {
|
||||||
|
sinfo = &__sinfo;
|
||||||
|
memset(&__sinfo, 0, sizeof(__sinfo));
|
||||||
|
}
|
||||||
sinfo->sinfo_assoc_id = sctp_getassocid(sd, addrs);
|
sinfo->sinfo_assoc_id = sctp_getassocid(sd, addrs);
|
||||||
if (sinfo->sinfo_assoc_id == 0) {
|
if (sinfo->sinfo_assoc_id == 0) {
|
||||||
printf("Huh, can't get associd? TSNH!\n");
|
printf("Huh, can't get associd? TSNH!\n");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user