Skip to content

Commit

Permalink
Merge pull request #364 from godbus/fix/validate_header_only
Browse files Browse the repository at this point in the history
Only check header validity when decoding messages
  • Loading branch information
guelfey committed Apr 9, 2023
2 parents 4fd31c8 + 001f80f commit a2da220
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 8 deletions.
2 changes: 1 addition & 1 deletion message.go
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ func DecodeMessageWithFDs(rd io.Reader, fds []int) (msg *Message, err error) {
}
}

if err = msg.IsValid(); err != nil {
if err = msg.validateHeader(); err != nil {
return nil, err
}
sig, _ := msg.Headers[FieldSignature].value.(Signature)
Expand Down
12 changes: 5 additions & 7 deletions transport_unix.go
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ func (t *unixTransport) ReadMessage() (*Message, error) {
return nil, err
}
dec.Reset(r, order, fds)
if err = decodeMessageBody(msg, dec, b); err != nil {
if err = decodeMessageBody(msg, dec); err != nil {
return nil, err
}
// substitute the values in the message body (which are indices for the
Expand All @@ -227,17 +227,14 @@ func (t *unixTransport) ReadMessage() (*Message, error) {
}

dec.Reset(r, order, nil)
if err = decodeMessageBody(msg, dec, b); err != nil {
if err = decodeMessageBody(msg, dec); err != nil {
return nil, err
}
return msg, nil
}

func decodeMessageBody(msg *Message, dec *decoder, b *bytes.Buffer) error {
// Check whether message is valid.
b.Reset()
err := msg.EncodeTo(b, nativeEndian)
if err != nil {
func decodeMessageBody(msg *Message, dec *decoder) error {
if err := msg.validateHeader(); err != nil {
return err
}

Expand All @@ -246,6 +243,7 @@ func decodeMessageBody(msg *Message, dec *decoder, b *bytes.Buffer) error {
return nil
}

var err error
msg.Body, err = dec.Decode(sig)
return err
}
Expand Down

0 comments on commit a2da220

Please sign in to comment.