summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt1
-rw-r--r--src/map/clif.c9
2 files changed, 6 insertions, 4 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 1f6d4288b..d8ad259f0 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,7 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2007/02/08
+ * Added a missing null pointer check in clif_parse_globalmessage
* Fixed the new socket code, which was triggering the inactivity timeout
on the servers' listening sockets
* Fixed the TURBO code not working since r4468 (parse func never called)
diff --git a/src/map/clif.c b/src/map/clif.c
index a50aa21bb..7a0d6b4ad 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -8524,9 +8524,9 @@ void clif_parse_GetCharNameRequest(int fd, struct map_session_data *sd) {
/*==========================================
* Validates and processes global messages
- *------------------------------------------
- */
-void clif_parse_GlobalMessage(int fd, struct map_session_data* sd) // S 008c/00f3 <packet len>.w <strz>.?B
+ * S 008c/00f3 <packet len>.w <strz>.?B
+ *------------------------------------------*/
+void clif_parse_GlobalMessage(int fd, struct map_session_data* sd)
{
char* message;
unsigned int packetlen, messagelen, namelen;
@@ -8549,7 +8549,8 @@ void clif_parse_GlobalMessage(int fd, struct map_session_data* sd) // S 008c/00f
int i;
// special case here - allow some more freedom for frost joke & dazzler
for(i = 0; i < MAX_SKILLTIMERSKILL; i++) // the only way to check ~.~
- if (sd->ud.skilltimerskill[i]->timer != -1 && (sd->ud.skilltimerskill[i]->skill_id == BA_FROSTJOKE || sd->ud.skilltimerskill[i]->skill_id == DC_SCREAM))
+ if (sd->ud.skilltimerskill[i] && sd->ud.skilltimerskill[i]->timer != -1 &&
+ (sd->ud.skilltimerskill[i]->skill_id == BA_FROSTJOKE || sd->ud.skilltimerskill[i]->skill_id == DC_SCREAM))
break;
if (i == MAX_SKILLTIMERSKILL) { // normal message, too long
ShowWarning("clif_parse_GlobalMessage: Player '%s' sent a message too long ('%.*s')!", sd->status.name, CHAT_SIZE, message);