summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgumi <git@gumi.ca>2018-03-09 16:51:19 -0500
committergumi <git@gumi.ca>2018-03-09 16:51:19 -0500
commit17ef6e228c7704e532d5b222d8560d287ee202e2 (patch)
tree172488661a20eb6d3b1ea41c9476cdac4e52187c
parentda50c517000391c83305ff704e3059c900f28d5b (diff)
downloadtmwa-17ef6e228c7704e532d5b222d8560d287ee202e2.tar.gz
tmwa-17ef6e228c7704e532d5b222d8560d287ee202e2.tar.bz2
tmwa-17ef6e228c7704e532d5b222d8560d287ee202e2.tar.xz
tmwa-17ef6e228c7704e532d5b222d8560d287ee202e2.zip
validate name size before sending custom mob names
-rw-r--r--src/map/clif.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/map/clif.cpp b/src/map/clif.cpp
index 184bb9d..2208291 100644
--- a/src/map/clif.cpp
+++ b/src/map/clif.cpp
@@ -1085,7 +1085,7 @@ int clif_spawnmob(dumb_ptr<mob_data> md)
}
// custom mob names
- if (md->name != MobName() && md->name != get_mob_db(md->mob_class).name)
+ if (md->name != MobName() && md->name != get_mob_db(md->mob_class).name && md->name.size() >= 4)
{
Packet_Fixed<0x0095> fixed_95;
fixed_95.block_id = md->bl_id;
@@ -2640,7 +2640,7 @@ void clif_getareachar_mob(dumb_ptr<map_session_data> sd, dumb_ptr<mob_data> md)
}
// custom mob names
- if (md->name != MobName() && md->name != get_mob_db(md->mob_class).name)
+ if (md->name != MobName() && md->name != get_mob_db(md->mob_class).name && md->name.size() >= 4)
{
Packet_Fixed<0x0095> fixed_95;
fixed_95.block_id = md->bl_id;
@@ -3835,10 +3835,12 @@ RecvResult clif_parse_GetCharNameRequest(Session *s, dumb_ptr<map_session_data>
case BL::MOB:
{
dumb_ptr<mob_data> md = bl->is_mob();
-
nullpo_retr(rv, md);
- fixed_95.char_name = stringish<CharName>(md->name);
+ if (md->name != MobName() && md->name != get_mob_db(md->mob_class).name && md->name.size() >= 4)
+ fixed_95.char_name = stringish<CharName>(md->name);
+ else
+ fixed_95.char_name = stringish<CharName>(get_mob_db(md->mob_class).name);
send_fpacket<0x0095, 30>(s, fixed_95);
}
break;