diff options
| author | Michael Tuexen <tuexen@FreeBSD.org> | 2022-11-15 20:05:02 +0000 |
|---|---|---|
| committer | Michael Tuexen <tuexen@FreeBSD.org> | 2022-11-15 20:05:02 +0000 |
| commit | 9a714376212ec1685fdc4cf254f2136a07ae6d2c (patch) | |
| tree | 9f122d7df5760c8a7291004e2405bf116a092de2 /sys | |
| parent | e471259313c25b9b386299b288023135bc298cd4 (diff) | |
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/netinet/libalias/alias_sctp.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/netinet/libalias/alias_sctp.c b/sys/netinet/libalias/alias_sctp.c index 8dc432ef6307..beb1e6072637 100644 --- a/sys/netinet/libalias/alias_sctp.c +++ b/sys/netinet/libalias/alias_sctp.c @@ -754,8 +754,11 @@ SctpAlias(struct libalias *la, struct ip *pip, int direction) case SN_PARSE_OK: break; case SN_PARSE_ERROR_CHHL: - /* Not an error if there is a chunk length parsing error and this is a fragmented packet */ - if (ntohs(pip->ip_off) & IP_MF) { + /* + * Not an error, if there is a chunk length parsing error, + * this is a fragmented packet, and we have a valid assoc. + */ + if ((assoc != NULL) && (ntohs(pip->ip_off) & IP_MF)) { rtnval = SN_PARSE_OK; break; } @@ -1067,6 +1070,8 @@ sctp_PktParser(struct libalias *la, int direction, struct ip *pip, * Also, I am only interested in the content of INIT and ADDIP chunks */ + sm->msg = SN_SCTP_OTHER;/* Initialise to largest value*/ + sm->chunk_length = 0; /* only care about length for key chunks */ // no mbuf stuff from Paolo yet so ... sm->ip_hdr = pip; /* remove ip header length from the bytes_left */ @@ -1114,8 +1119,6 @@ sctp_PktParser(struct libalias *la, int direction, struct ip *pip, chunk_count = 1; /* Real packet parsing occurs below */ - sm->msg = SN_SCTP_OTHER;/* Initialise to largest value*/ - sm->chunk_length = 0; /* only care about length for key chunks */ while (IS_SCTP_CONTROL(chunk_hdr)) { switch (chunk_hdr->chunk_type) { case SCTP_INITIATION: |
