Merge remote-tracking branch 'origin/master' into multiport

This commit is contained in:
Wade Simmons
2026-07-08 11:38:38 -04:00
42 changed files with 2000 additions and 335 deletions
+10 -2
View File
@@ -323,8 +323,9 @@ func (m *Machine) processPayload(msg []byte, flags msgFlags) error {
// Process payload
if flags.expectsPayload {
var remoteIndex uint32
if m.result.Initiator {
m.result.RemoteIndex = payload.ResponderIndex
remoteIndex = payload.ResponderIndex
if payload.ResponderMultiPort != nil {
m.result.MultiportRx = payload.ResponderMultiPort.RxSupported
m.result.MultiportTx = payload.ResponderMultiPort.TxSupported
@@ -333,7 +334,7 @@ func (m *Machine) processPayload(msg []byte, flags msgFlags) error {
}
}
} else {
m.result.RemoteIndex = payload.InitiatorIndex
remoteIndex = payload.InitiatorIndex
if payload.InitiatorMultiPort != nil {
m.result.MultiportRx = payload.InitiatorMultiPort.RxSupported
m.result.MultiportTx = payload.InitiatorMultiPort.TxSupported
@@ -342,6 +343,13 @@ func (m *Machine) processPayload(msg []byte, flags msgFlags) error {
}
}
}
// The payload presence check above can be satisfied by Time alone, so a payload
// could still carry a zero index here. We need to reject it.
if remoteIndex == 0 {
m.failed = true
return ErrInvalidRemoteIndex
}
m.result.RemoteIndex = remoteIndex
m.result.HandshakeTime = payload.Time
m.payloadSet = true
}