diff options
author | Raimo Niskanen <[email protected]> | 2010-08-25 14:43:49 +0200 |
---|---|---|
committer | Raimo Niskanen <[email protected]> | 2010-08-31 14:21:01 +0200 |
commit | eca2411eb67461bf3cda66d0f981b47698ab99f3 (patch) | |
tree | eef5e45f48e617a49784cfe8a1100b558944e8b1 /erts/emulator/drivers/common/inet_drv.c | |
parent | 82d430853eb1f53e6022de647c26254fe5681454 (diff) | |
download | otp-eca2411eb67461bf3cda66d0f981b47698ab99f3.tar.gz otp-eca2411eb67461bf3cda66d0f981b47698ab99f3.tar.bz2 otp-eca2411eb67461bf3cda66d0f981b47698ab99f3.zip |
Fill in sinfo_assoc_id in struct sctp_sndrcvinfo for getopt()
The assoc_id field was uninitialized causing random answers.
Diffstat (limited to 'erts/emulator/drivers/common/inet_drv.c')
-rw-r--r-- | erts/emulator/drivers/common/inet_drv.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/erts/emulator/drivers/common/inet_drv.c b/erts/emulator/drivers/common/inet_drv.c index 059288d1cb..10cd140cf4 100644 --- a/erts/emulator/drivers/common/inet_drv.c +++ b/erts/emulator/drivers/common/inet_drv.c @@ -6193,6 +6193,10 @@ static int sctp_fill_opts(inet_descriptor* desc, char* buf, int buflen, struct sctp_sndrcvinfo sri; unsigned int sz = sizeof(sri); + if (buflen < ASSOC_ID_LEN) RETURN_ERROR(spec, -EINVAL); + sri.sinfo_assoc_id = GET_ASSOC_ID(buf); + buf += ASSOC_ID_LEN; + buflen -= ASSOC_ID_LEN; if (sock_getopt(desc->s, IPPROTO_SCTP, SCTP_DEFAULT_SEND_PARAM, &sri, &sz) < 0) continue; /* Fill in the response: */ |