|
@@ -469,6 +469,8 @@ _sctp_walk_params((pos), (chunk), ntohs((chunk)->chunk_hdr.length), member)
|
|
|
|
|
|
#define _sctp_walk_params(pos, chunk, end, member)\
|
|
|
for (pos.v = chunk->member;\
|
|
|
+ (pos.v + offsetof(struct sctp_paramhdr, length) + sizeof(pos.p->length) <\
|
|
|
+ (void *)chunk + end) &&\
|
|
|
pos.v <= (void *)chunk + end - ntohs(pos.p->length) &&\
|
|
|
ntohs(pos.p->length) >= sizeof(struct sctp_paramhdr);\
|
|
|
pos.v += SCTP_PAD4(ntohs(pos.p->length)))
|
|
@@ -479,6 +481,8 @@ _sctp_walk_errors((err), (chunk_hdr), ntohs((chunk_hdr)->length))
|
|
|
#define _sctp_walk_errors(err, chunk_hdr, end)\
|
|
|
for (err = (sctp_errhdr_t *)((void *)chunk_hdr + \
|
|
|
sizeof(struct sctp_chunkhdr));\
|
|
|
+ ((void *)err + offsetof(sctp_errhdr_t, length) + sizeof(err->length) <\
|
|
|
+ (void *)chunk_hdr + end) &&\
|
|
|
(void *)err <= (void *)chunk_hdr + end - ntohs(err->length) &&\
|
|
|
ntohs(err->length) >= sizeof(sctp_errhdr_t); \
|
|
|
err = (sctp_errhdr_t *)((void *)err + SCTP_PAD4(ntohs(err->length))))
|