From d6ba88b091f6c9be3b48ab0fe3f94211ee210700 Mon Sep 17 00:00:00 2001 From: anon5 Date: Thu, 9 Sep 2021 18:42:02 +0000 Subject: [PATCH] Fix panic when sending ToCltMinimapModes Fixes https://github.com/anon55555/mt/issues/3. --- tocltcmds.go | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/tocltcmds.go b/tocltcmds.go index 9f8fbd4..14e4299 100644 --- a/tocltcmds.go +++ b/tocltcmds.go @@ -731,35 +731,31 @@ type ToCltMinimapModes struct { Modes []MinimapMode } -func (cmd *ToCltMinimapModes) serialize(w io.Writer) error { +var _ serializer = (*ToCltMinimapModes)(nil) + +func (cmd *ToCltMinimapModes) serialize(w io.Writer) { buf := make([]byte, 4) if len(cmd.Modes) > math.MaxUint16 { - return ErrTooLong + chk(ErrTooLong) } be.PutUint16(buf[0:2], uint16(len(cmd.Modes))) be.PutUint16(buf[2:4], cmd.Current) - if _, err := w.Write(buf); err != nil { - return err - } + _, err := w.Write(buf) + chk(err) for i := range cmd.Modes { - if err := serialize(w, &cmd.Modes[i]); err != nil { - return err - } + chk(serialize(w, &cmd.Modes[i])) } - return nil } -func (cmd *ToCltMinimapModes) deserialize(r io.Reader) error { +var _ deserializer = (*ToCltMinimapModes)(nil) + +func (cmd *ToCltMinimapModes) deserialize(r io.Reader) { buf := make([]byte, 4) - if _, err := io.ReadFull(r, buf); err != nil { - return err - } + _, err := io.ReadFull(r, buf) + chk(err) cmd.Modes = make([]MinimapMode, be.Uint16(buf[0:2])) cmd.Current = be.Uint16(buf[2:4]) for i := range cmd.Modes { - if err := deserialize(r, &cmd.Modes[i]); err != nil { - return err - } + chk(deserialize(r, &cmd.Modes[i])) } - return nil } -- 2.44.0