diff options
author | Andrei Karas <akaras@inbox.ru> | 2018-12-30 18:50:04 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2018-12-30 18:50:04 +0300 |
commit | 3c478103d2172d7aa7a22c8fcb48afc02925bd53 (patch) | |
tree | fafb331b9ec9db883108662bd395168e49c769e6 /src/emap/parse.c | |
parent | f25c84879758a1e849ba955ec360acaa407117d4 (diff) | |
download | evol-hercules-3c478103d2172d7aa7a22c8fcb48afc02925bd53.tar.gz evol-hercules-3c478103d2172d7aa7a22c8fcb48afc02925bd53.tar.bz2 evol-hercules-3c478103d2172d7aa7a22c8fcb48afc02925bd53.tar.xz evol-hercules-3c478103d2172d7aa7a22c8fcb48afc02925bd53.zip |
Add missing null pointer checks in custom map server packets.
Diffstat (limited to 'src/emap/parse.c')
-rw-r--r-- | src/emap/parse.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/emap/parse.c b/src/emap/parse.c index 966c8bb..299772e 100644 --- a/src/emap/parse.c +++ b/src/emap/parse.c @@ -42,7 +42,7 @@ void map_parse_join_channel(int fd) char *p; TBL_PC* sd = (TBL_PC*)sockt->session[fd]->session_data; int res = 0; - if (!sd) + if (!sd || !sd->bl.prev) return; safestrncpy(name, RFIFOP(fd, 2), 24); @@ -72,7 +72,7 @@ void map_parse_part_channel(int fd) char *p; TBL_PC* sd = (TBL_PC*)sockt->session[fd]->session_data; int k; - if (!sd) + if (!sd || !sd->bl.prev) return; safestrncpy(name, RFIFOP(fd, 2), 24); @@ -109,7 +109,7 @@ void map_parse_pet_say(int fd) char message[500]; TBL_PC* sd = (TBL_PC*)sockt->session[fd]->session_data; - if (!sd || !sd->pd) + if (!sd || !sd->pd || !sd->bl.prev) return; if (!pc->can_talk(sd)) @@ -125,7 +125,7 @@ void map_parse_pet_say(int fd) void map_parse_pet_emote(int fd) { TBL_PC* sd = (TBL_PC*)sockt->session[fd]->session_data; - if (!sd || !sd->pd) + if (!sd || !sd->pd || !sd->bl.prev) return; const time_t t = time(NULL); if (sd->emotionlasttime + 1 >= t) @@ -154,7 +154,7 @@ void map_parse_get_online_list(int fd) void map_parse_pet_move(int fd) { TBL_PC* sd = (TBL_PC*)sockt->session[fd]->session_data; - if (!sd || !sd->pd) + if (!sd || !sd->pd || !sd->bl.prev) return; short x = RFIFOW(fd, 6); short y = RFIFOW(fd, 8); @@ -167,7 +167,7 @@ void map_parse_pet_move(int fd) void map_parse_pet_dir(int fd) { TBL_PC* sd = (TBL_PC*)sockt->session[fd]->session_data; - if (!sd || !sd->pd) + if (!sd || !sd->pd || !sd->bl.prev) return; unit->setdir(&sd->pd->bl, RFIFOB(fd, 8)); } @@ -177,7 +177,7 @@ void map_parse_homun_say(int fd) char message[500]; TBL_PC* sd = (TBL_PC*)sockt->session[fd]->session_data; - if (!sd) + if (!sd || !sd->bl.prev) return; if (!pc->can_talk(sd)) return; @@ -194,7 +194,7 @@ void map_parse_homun_say(int fd) void map_parse_homun_emote(int fd) { TBL_PC* sd = (TBL_PC*)sockt->session[fd]->session_data; - if (!sd) + if (!sd || !sd->bl.prev) return; const time_t t = time(NULL); if (sd->emotionlasttime + 1 >= t) @@ -213,7 +213,7 @@ void map_parse_homun_emote(int fd) void map_parse_homun_dir(int fd) { TBL_PC* sd = (TBL_PC*)sockt->session[fd]->session_data; - if (!sd) + if (!sd || !sd->bl.prev) return; if (sd->md && sd->md->db) unit->setdir(&sd->md->bl, RFIFOB(fd, 8)); @@ -224,7 +224,7 @@ void map_parse_homun_dir(int fd) void map_clif_parse_useitem2(int fd) { TBL_PC* sd = (TBL_PC*)sockt->session[fd]->session_data; - if (!sd) + if (!sd || !sd->bl.prev) return; if (pc_isdead(sd)) |