From 56a32b879c85e132ea4f05a0812adcbc04116a3f Mon Sep 17 00:00:00 2001 From: wish Date: Thu, 31 Aug 2023 00:07:27 +1000 Subject: [PATCH] fix invalid length tuneValues --- server/channelserver/handlers_quest.go | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/server/channelserver/handlers_quest.go b/server/channelserver/handlers_quest.go index a549086a8..d9ec2bc08 100644 --- a/server/channelserver/handlers_quest.go +++ b/server/channelserver/handlers_quest.go @@ -633,24 +633,28 @@ func handleMsgMhfEnumerateQuest(s *Session, p mhfpacket.MHFPacket) { offset := uint16(time.Now().Unix()) bf.WriteUint16(offset) + tuneLimit := 770 if _config.ErupeConfig.RealClientMode <= _config.F5 { - tuneValues = tuneValues[:256] + tuneLimit = 256 } else if _config.ErupeConfig.RealClientMode <= _config.G3 { - tuneValues = tuneValues[:283] + tuneLimit = 283 } else if _config.ErupeConfig.RealClientMode <= _config.GG { - tuneValues = tuneValues[:315] + tuneLimit = 315 } else if _config.ErupeConfig.RealClientMode <= _config.G61 { - tuneValues = tuneValues[:332] + tuneLimit = 332 } else if _config.ErupeConfig.RealClientMode <= _config.G7 { - tuneValues = tuneValues[:339] + tuneLimit = 339 } else if _config.ErupeConfig.RealClientMode <= _config.G81 { - tuneValues = tuneValues[:396] + tuneLimit = 396 } else if _config.ErupeConfig.RealClientMode <= _config.G91 { - tuneValues = tuneValues[:694] + tuneLimit = 694 } else if _config.ErupeConfig.RealClientMode <= _config.G101 { - tuneValues = tuneValues[:704] + tuneLimit = 704 } else if _config.ErupeConfig.RealClientMode <= _config.Z2 { - tuneValues = tuneValues[:750] + tuneLimit = 750 + } + if len(tuneValues) > tuneLimit { + tuneValues = tuneValues[:tuneLimit] } bf.WriteUint16(uint16(len(tuneValues)))