diff options
author | Andrei Karas <akaras@inbox.ru> | 2019-02-11 18:32:14 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2019-02-11 21:10:50 +0300 |
commit | 82d634ad431b2ffe7077a561f4eafd2486ede44b (patch) | |
tree | 0405150fd0e8529904495b0d5feac183c5c8c16e | |
parent | ee51e2c33f4ebe2805b090ab0b54023436b41580 (diff) | |
download | hercules-82d634ad431b2ffe7077a561f4eafd2486ede44b.tar.gz hercules-82d634ad431b2ffe7077a561f4eafd2486ede44b.tar.bz2 hercules-82d634ad431b2ffe7077a561f4eafd2486ede44b.tar.xz hercules-82d634ad431b2ffe7077a561f4eafd2486ede44b.zip |
Fix buffer size issue in inter server packets
Fixes #2369
-rw-r--r-- | src/char/mapif.c | 6 | ||||
-rw-r--r-- | src/map/intif.c | 4 |
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; |