diff options
Diffstat (limited to 'net/sctp/inqueue.c')
-rw-r--r-- | net/sctp/inqueue.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/net/sctp/inqueue.c b/net/sctp/inqueue.c index c30629e17781..88aa22407549 100644 --- a/net/sctp/inqueue.c +++ b/net/sctp/inqueue.c | |||
@@ -159,16 +159,16 @@ struct sctp_chunk *sctp_inq_pop(struct sctp_inq *queue) | |||
159 | * the skb->tail. | 159 | * the skb->tail. |
160 | */ | 160 | */ |
161 | if (unlikely(skb_is_nonlinear(chunk->skb))) { | 161 | if (unlikely(skb_is_nonlinear(chunk->skb))) { |
162 | if (chunk->chunk_end > chunk->skb->tail) | 162 | if (chunk->chunk_end > skb_tail_pointer(chunk->skb)) |
163 | chunk->chunk_end = chunk->skb->tail; | 163 | chunk->chunk_end = skb_tail_pointer(chunk->skb); |
164 | } | 164 | } |
165 | skb_pull(chunk->skb, sizeof(sctp_chunkhdr_t)); | 165 | skb_pull(chunk->skb, sizeof(sctp_chunkhdr_t)); |
166 | chunk->subh.v = NULL; /* Subheader is no longer valid. */ | 166 | chunk->subh.v = NULL; /* Subheader is no longer valid. */ |
167 | 167 | ||
168 | if (chunk->chunk_end < chunk->skb->tail) { | 168 | if (chunk->chunk_end < skb_tail_pointer(chunk->skb)) { |
169 | /* This is not a singleton */ | 169 | /* This is not a singleton */ |
170 | chunk->singleton = 0; | 170 | chunk->singleton = 0; |
171 | } else if (chunk->chunk_end > chunk->skb->tail) { | 171 | } else if (chunk->chunk_end > skb_tail_pointer(chunk->skb)) { |
172 | /* RFC 2960, Section 6.10 Bundling | 172 | /* RFC 2960, Section 6.10 Bundling |
173 | * | 173 | * |
174 | * Partial chunks MUST NOT be placed in an SCTP packet. | 174 | * Partial chunks MUST NOT be placed in an SCTP packet. |