From 97b337db310427b78fc4e4a0dbb8d2fb1b78aeb1 Mon Sep 17 00:00:00 2001 From: eleksir Date: Mon, 30 Mar 2026 01:45:54 +0300 Subject: [PATCH] Fix panic on empty/short message in MsgParser - Add bounds check before slicing message for csign prefix detection - Prevents index out of range panic when message is empty or shorter than csign --- TODO | 7 ------- internal/misc/msgParser.go | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) delete mode 100644 TODO diff --git a/TODO b/TODO deleted file mode 100644 index b161a81..0000000 --- a/TODO +++ /dev/null @@ -1,7 +0,0 @@ -Добавить в протокол секцию nsfw/censor. - -В качестве валидатора использовать какую-нить готовую либу -https://gookit.github.io/validate/#/ -github.com/go-playground/validator/v10 - -https://awesome-go.com/validation/ diff --git a/internal/misc/msgParser.go b/internal/misc/msgParser.go index c0dae69..960b564 100644 --- a/internal/misc/msgParser.go +++ b/internal/misc/msgParser.go @@ -90,7 +90,7 @@ func MsgParser(ctx context.Context, msg string) { j.Misc.Fwdcnt++ // Классифицирем входящие сообщения. Первым делом, попробуем определить команды. - if j.Message[0:len(j.Misc.Csign)] == j.Misc.Csign { + if len(j.Message) >= len(j.Misc.Csign) && j.Message[0:len(j.Misc.Csign)] == j.Misc.Csign { // Может быть, это команда модуля phrases? var ( done = false