aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/drivers
diff options
context:
space:
mode:
authorRaimo Niskanen <[email protected]>2010-08-25 14:43:49 +0200
committerRaimo Niskanen <[email protected]>2010-08-31 14:21:01 +0200
commiteca2411eb67461bf3cda66d0f981b47698ab99f3 (patch)
treeeef5e45f48e617a49784cfe8a1100b558944e8b1 /erts/emulator/drivers
parent82d430853eb1f53e6022de647c26254fe5681454 (diff)
downloadotp-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')
-rw-r--r--erts/emulator/drivers/common/inet_drv.c4
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: */