- **status**: assigned --> fixed
- **assigned_to**: Minh Hon Chau --> nobody
- **Comment**:
commit 4779df8727c25af3006794d637bc2d3357bda50d
Author: Minh Chau <minh.c...@dektech.com.au>
Date: Tue Oct 8 07:41:24 2019 +1100
mds: Enhance decoding for mds flow control message [#3097]
---
** [tickets:#3097] mds: Incorrect fragment decoding for MDS_PROT_FCTRL_ID**
**Status:** fixed
**Milestone:** 5.19.10
**Created:** Fri Oct 04, 2019 05:35 AM UTC by Minh Hon Chau
**Last Updated:** Mon Oct 07, 2019 12:14 AM UTC
**Owner:** nobody
The current code that decodes protocol identifier
~~~
if ((pro_ver_ & MDS_PROT_VER_MASK) == MDS_PROT_FCTRL) {
// decode flow control sequence number
ptr = &msg[HeaderMessage::FieldIndex::kFlowControlSequenceNumber];
fseq_ = ncs_decode_16bit(&ptr);
// decode protocol identifier
ptr = &msg[ChunkAck::FieldIndex::kProtocolIdentifier];
pro_id_ = ncs_decode_32bit(&ptr);
if (pro_id_ == MDS_PROT_FCTRL_ID) {
// decode message type
ptr = &msg[ChunkAck::FieldIndex::kFlowControlMessageType];
msg_type_ = ncs_decode_8bit(&ptr);
}
}
~~~
In case of fragmentation, the last fragment has pro_ver = MDS_PROT_FCTRL, and
coincidently the next 4 bytes (oct11 -> oct14) has the same value to
MDS_PROT_FCTRL_ID. Therefore, mds thinks this fragment as ack/nack message,
which is wrong.
---
Sent from sourceforge.net because opensaf-tickets@lists.sourceforge.net is
subscribed to https://sourceforge.net/p/opensaf/tickets/
To unsubscribe from further messages, a project admin can change settings at
https://sourceforge.net/p/opensaf/admin/tickets/options. Or, if this is a
mailing list, you can unsubscribe from the mailing list.
_______________________________________________
Opensaf-tickets mailing list
Opensaf-tickets@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-tickets