|
@@ -292,6 +292,8 @@ int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw_addr_list,
|
|
}
|
|
}
|
|
|
|
|
|
af->from_addr_param(&addr, rawaddr, htons(port), 0);
|
|
af->from_addr_param(&addr, rawaddr, htons(port), 0);
|
|
|
|
+ if (sctp_bind_addr_state(bp, &addr) != -1)
|
|
|
|
+ goto next;
|
|
retval = sctp_add_bind_addr(bp, &addr, sizeof(addr),
|
|
retval = sctp_add_bind_addr(bp, &addr, sizeof(addr),
|
|
SCTP_ADDR_SRC, gfp);
|
|
SCTP_ADDR_SRC, gfp);
|
|
if (retval) {
|
|
if (retval) {
|
|
@@ -300,6 +302,7 @@ int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw_addr_list,
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+next:
|
|
len = ntohs(param->length);
|
|
len = ntohs(param->length);
|
|
addrs_len -= len;
|
|
addrs_len -= len;
|
|
raw_addr_list += len;
|
|
raw_addr_list += len;
|