summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2019-02-11 18:32:14 +0300
committerAndrei Karas <akaras@inbox.ru>2019-02-11 18:32:14 +0300
commit66844b9f4a4c72055dc352ac5c94fb3d84204b3b (patch)
tree0405150fd0e8529904495b0d5feac183c5c8c16e
parentee51e2c33f4ebe2805b090ab0b54023436b41580 (diff)
downloadhercules-66844b9f4a4c72055dc352ac5c94fb3d84204b3b.tar.gz
hercules-66844b9f4a4c72055dc352ac5c94fb3d84204b3b.tar.bz2
hercules-66844b9f4a4c72055dc352ac5c94fb3d84204b3b.tar.xz
hercules-66844b9f4a4c72055dc352ac5c94fb3d84204b3b.zip
Fix buffer size issue in inter server packets
Fixes #2369
-rw-r--r--src/char/mapif.c6
-rw-r--r--src/map/intif.c4
2 files changed, 5 insertions, 5 deletions
diff --git a/src/char/mapif.c b/src/char/mapif.c
index 73b7fd46d..fb904a46d 100644
--- a/src/char/mapif.c
+++ b/src/char/mapif.c
@@ -569,7 +569,7 @@ static int mapif_guild_withdraw(int guild_id, int account_id, int char_id, int f
// Send short member's info
static int mapif_guild_memberinfoshort(struct guild *g, int idx)
{
- unsigned char buf[23];
+ unsigned char buf[25];
nullpo_ret(g);
Assert_ret(idx >= 0 && idx < MAX_GUILD);
WBUFW(buf, 0) = 0x3835;
@@ -1423,7 +1423,7 @@ static int mapif_parse_PartyLeaderChange(int fd, int party_id, int account_id, i
static int mapif_pet_created(int fd, int account_id, struct s_pet *p)
{
- WFIFOHEAD(fd, 12);
+ WFIFOHEAD(fd, 14);
WFIFOW(fd, 0) = 0x3880;
WFIFOL(fd, 2) = account_id;
if (p != NULL){
@@ -1805,7 +1805,7 @@ static void mapif_rodex_checkname(int fd, int reqchar_id, int target_char_id, in
Assert_retv(reqchar_id > 0);
Assert_retv(target_char_id >= 0);
- WFIFOHEAD(fd, 16 + NAME_LENGTH);
+ WFIFOHEAD(fd, 18 + NAME_LENGTH);
WFIFOW(fd, 0) = 0x3898;
WFIFOL(fd, 2) = reqchar_id;
WFIFOL(fd, 6) = target_char_id;
diff --git a/src/map/intif.c b/src/map/intif.c
index 18b41fe04..8028d4474 100644
--- a/src/map/intif.c
+++ b/src/map/intif.c
@@ -77,7 +77,7 @@ static int intif_create_pet(int account_id, int char_id, int pet_class, int pet_
if (intif->CheckForCharServer())
return 0;
nullpo_ret(pet_name);
- WFIFOHEAD(inter_fd, 28 + NAME_LENGTH);
+ WFIFOHEAD(inter_fd, 32 + NAME_LENGTH);
WFIFOW(inter_fd, 0) = 0x3080;
WFIFOL(inter_fd, 2) = account_id;
WFIFOL(inter_fd, 6) = char_id;
@@ -907,7 +907,7 @@ static int intif_guild_memberinfoshort(int guild_id, int account_id, int char_id
{
if (intif->CheckForCharServer())
return 0;
- WFIFOHEAD(inter_fd, 19);
+ WFIFOHEAD(inter_fd, 23);
WFIFOW(inter_fd, 0) = 0x3035;
WFIFOL(inter_fd, 2) = guild_id;
WFIFOL(inter_fd, 6) = account_id;