From 2968691478f6479e98377ca500a0da69bc0f392a Mon Sep 17 00:00:00 2001
From: Freeyorp <Freeyorp101@hotmail.com>
Date: Sat, 19 Dec 2009 20:12:06 +1300
Subject: Fix a race condition

If the server tells the client to update the mp bar when handling an matk
change message before the status window has initialised, a segfault
occurs
---
 src/net/ea/playerhandler.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

(limited to 'src/net')

diff --git a/src/net/ea/playerhandler.cpp b/src/net/ea/playerhandler.cpp
index 5db4acbe..0592bb55 100644
--- a/src/net/ea/playerhandler.cpp
+++ b/src/net/ea/playerhandler.cpp
@@ -260,10 +260,14 @@ void PlayerHandler::handleMessage(Net::MessageIn &msg)
                     case 0x002b: player_node->setAttributeEffective(MATK, value
                                                            + ATTR_BONUS(MATK));
                         player_node->setAttributeBase(MATK, value);
-                        statusWindow->update(StatusWindow::MP); break;
+                        if (statusWindow)
+                            statusWindow->update(StatusWindow::MP);
+                        break;
                     case 0x002c: value += player_node->getAttributeBase(MATK);
                         player_node->setAttributeEffective(MATK, value);
-                        statusWindow->update(StatusWindow::MP); break;
+                        if (statusWindow)
+                            statusWindow->update(StatusWindow::MP);
+                        break;
                     case 0x002d: player_node->setAttributeEffective(DEF, value
                                                            + ATTR_BONUS(DEF));
                         player_node->setAttributeBase(DEF, value); break;
-- 
cgit v1.2.3-70-g09d2