diff options
author | Dennis Friis <peavey@placid.dk> | 2008-04-10 15:59:04 +0000 |
---|---|---|
committer | Dennis Friis <peavey@placid.dk> | 2008-04-10 15:59:04 +0000 |
commit | fd7f5e8feda49fd7724e96e366f8770f6f7cfe66 (patch) | |
tree | d7b04dca099d9305e9f42bb8fbe78df0d9162de1 /src/map/intif.c | |
parent | 71e7e9b2ecc592d0dd821dfabc837fa6d3f6e17d (diff) | |
download | tmwa-fd7f5e8feda49fd7724e96e366f8770f6f7cfe66.tar.gz tmwa-fd7f5e8feda49fd7724e96e366f8770f6f7cfe66.tar.bz2 tmwa-fd7f5e8feda49fd7724e96e366f8770f6f7cfe66.tar.xz tmwa-fd7f5e8feda49fd7724e96e366f8770f6f7cfe66.zip |
fix mapif_parse_WisToGM not working at all due to mismatch message sizes.
Diffstat (limited to 'src/map/intif.c')
-rw-r--r-- | src/map/intif.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/map/intif.c b/src/map/intif.c index ace0187..4464dc5 100644 --- a/src/map/intif.c +++ b/src/map/intif.c @@ -584,22 +584,20 @@ int mapif_parse_WisToGM(int fd) { // 0x3003/0x3803 <packet_len>.w <wispname>.24B int i, min_gm_level; struct map_session_data *pl_sd; char Wisp_name[24]; - char mbuf[255]; - char *message = ((RFIFOW(fd,2) - 30) >= sizeof(mbuf)) ? (char *) malloc((RFIFOW(fd,2) - 30)) : mbuf; + char *message = malloc((RFIFOW(fd,2) - 30)); min_gm_level = (int)RFIFOW(fd,28); memcpy(Wisp_name, RFIFOP(fd,4), 24); Wisp_name[23] = '\0'; - memcpy(message, RFIFOP(fd,30), RFIFOW(fd,2) - 30); - message[sizeof(message) - 1] = '\0'; + memcpy(message, RFIFOP(fd,30), (RFIFOW(fd,2) - 30)); + message[RFIFOW(fd,2) - 31] = '\0'; // information is sended to all online GM for (i = 0; i < fd_max; i++) if (session[i] && (pl_sd = session[i]->session_data) && pl_sd->state.auth) if (pc_isGM(pl_sd) >= min_gm_level) clif_wis_message(i, Wisp_name, message, strlen(message) + 1); - if (message != mbuf) - free(message); + free(message); return 0; } |