diff --git a/component/routing/function_parser.go b/component/routing/function_parser.go index c125f1026..86786aef6 100644 --- a/component/routing/function_parser.go +++ b/component/routing/function_parser.go @@ -108,8 +108,8 @@ func ProcessNameParserFactory(callback func(f *config_parser.Function, procNames return func(log *logrus.Logger, f *config_parser.Function, key string, paramValueGroup []string, overrideOutbound *Outbound) (err error) { var procNames [][consts.TaskCommLen]byte for _, v := range paramValueGroup { - if len([]byte(v)) > consts.TaskCommLen { - log.Infof(`pname routing: trim "%v" to "%v" because it is too long.`, v, string([]byte(v)[:consts.TaskCommLen])) + if len([]byte(v)) > consts.TaskCommLen - 1 { + log.Infof(`pname routing: trim "%v" to "%v" because it is too long.`, v, string([]byte(v)[:consts.TaskCommLen-1])) } procNames = append(procNames, toProcessName(v)) } @@ -134,6 +134,6 @@ func parsePrefixes(values []string) (cidrs []netip.Prefix, err error) { func toProcessName(processName string) (procName [consts.TaskCommLen]byte) { n := []byte(processName) - copy(procName[:], n) + copy(procName[:consts.TaskCommLen-1], n) return procName }