Merge pull request #2275 from lucas-clemente/fix-session-ticket-transport-parameter-unmarshal

fix unmarshaling of transport parameters from session tickets
This commit is contained in:
Marten Seemann
2020-01-06 17:42:13 +07:00
committed by GitHub
2 changed files with 8 additions and 3 deletions

View File

@@ -491,7 +491,13 @@ func (h *cryptoSetup) accept0RTT(sessionTicketData []byte) bool {
h.logger.Debugf("Unmarshaling transport parameters from session ticket failed: %s", err.Error())
return false
}
return h.ourParams.ValidFor0RTT(&tp)
valid := h.ourParams.ValidFor0RTT(&tp)
if valid {
h.logger.Debugf("Accepting 0-RTT.")
} else {
h.logger.Debugf("Transport parameters changed. Rejecting 0-RTT.")
}
return valid
}
func (h *cryptoSetup) handlePostHandshakeMessage() {

View File

@@ -413,8 +413,7 @@ func (p *TransportParameters) UnmarshalFromSessionTicket(data []byte) error {
if version != transportParameterMarshalingVersion {
return fmt.Errorf("unknown transport parameter marshaling version: %d", version)
}
tp := &TransportParameters{}
return tp.Unmarshal(data[len(data)-r.Len():], protocol.PerspectiveServer)
return p.Unmarshal(data[len(data)-r.Len():], protocol.PerspectiveServer)
}
// ValidFor0RTT checks if the transport parameters match those saved in the session ticket.