diff options
Diffstat (limited to 'net/sctp/bind_addr.c')
-rw-r--r-- | net/sctp/bind_addr.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/net/sctp/bind_addr.c b/net/sctp/bind_addr.c index ceefda025e2d..80e6df06967a 100644 --- a/net/sctp/bind_addr.c +++ b/net/sctp/bind_addr.c | |||
@@ -67,15 +67,13 @@ int sctp_bind_addr_copy(struct sctp_bind_addr *dest, | |||
67 | int flags) | 67 | int flags) |
68 | { | 68 | { |
69 | struct sctp_sockaddr_entry *addr; | 69 | struct sctp_sockaddr_entry *addr; |
70 | struct list_head *pos; | ||
71 | int error = 0; | 70 | int error = 0; |
72 | 71 | ||
73 | /* All addresses share the same port. */ | 72 | /* All addresses share the same port. */ |
74 | dest->port = src->port; | 73 | dest->port = src->port; |
75 | 74 | ||
76 | /* Extract the addresses which are relevant for this scope. */ | 75 | /* Extract the addresses which are relevant for this scope. */ |
77 | list_for_each(pos, &src->address_list) { | 76 | list_for_each_entry(addr, &src->address_list, list) { |
78 | addr = list_entry(pos, struct sctp_sockaddr_entry, list); | ||
79 | error = sctp_copy_one_addr(dest, &addr->a, scope, | 77 | error = sctp_copy_one_addr(dest, &addr->a, scope, |
80 | gfp, flags); | 78 | gfp, flags); |
81 | if (error < 0) | 79 | if (error < 0) |
@@ -87,9 +85,7 @@ int sctp_bind_addr_copy(struct sctp_bind_addr *dest, | |||
87 | * the assumption that we must be sitting behind a NAT. | 85 | * the assumption that we must be sitting behind a NAT. |
88 | */ | 86 | */ |
89 | if (list_empty(&dest->address_list) && (SCTP_SCOPE_GLOBAL == scope)) { | 87 | if (list_empty(&dest->address_list) && (SCTP_SCOPE_GLOBAL == scope)) { |
90 | list_for_each(pos, &src->address_list) { | 88 | list_for_each_entry(addr, &src->address_list, list) { |
91 | addr = list_entry(pos, struct sctp_sockaddr_entry, | ||
92 | list); | ||
93 | error = sctp_copy_one_addr(dest, &addr->a, | 89 | error = sctp_copy_one_addr(dest, &addr->a, |
94 | SCTP_SCOPE_LINK, gfp, | 90 | SCTP_SCOPE_LINK, gfp, |
95 | flags); | 91 | flags); |
@@ -115,14 +111,12 @@ int sctp_bind_addr_dup(struct sctp_bind_addr *dest, | |||
115 | gfp_t gfp) | 111 | gfp_t gfp) |
116 | { | 112 | { |
117 | struct sctp_sockaddr_entry *addr; | 113 | struct sctp_sockaddr_entry *addr; |
118 | struct list_head *pos; | ||
119 | int error = 0; | 114 | int error = 0; |
120 | 115 | ||
121 | /* All addresses share the same port. */ | 116 | /* All addresses share the same port. */ |
122 | dest->port = src->port; | 117 | dest->port = src->port; |
123 | 118 | ||
124 | list_for_each(pos, &src->address_list) { | 119 | list_for_each_entry(addr, &src->address_list, list) { |
125 | addr = list_entry(pos, struct sctp_sockaddr_entry, list); | ||
126 | error = sctp_add_bind_addr(dest, &addr->a, 1, gfp); | 120 | error = sctp_add_bind_addr(dest, &addr->a, 1, gfp); |
127 | if (error < 0) | 121 | if (error < 0) |
128 | break; | 122 | break; |
@@ -273,8 +267,7 @@ union sctp_params sctp_bind_addrs_to_raw(const struct sctp_bind_addr *bp, | |||
273 | 267 | ||
274 | addrparms = retval; | 268 | addrparms = retval; |
275 | 269 | ||
276 | list_for_each(pos, &bp->address_list) { | 270 | list_for_each_entry(addr, &bp->address_list, list) { |
277 | addr = list_entry(pos, struct sctp_sockaddr_entry, list); | ||
278 | af = sctp_get_af_specific(addr->a.v4.sin_family); | 271 | af = sctp_get_af_specific(addr->a.v4.sin_family); |
279 | len = af->to_addr_param(&addr->a, &rawaddr); | 272 | len = af->to_addr_param(&addr->a, &rawaddr); |
280 | memcpy(addrparms.v, &rawaddr, len); | 273 | memcpy(addrparms.v, &rawaddr, len); |