From da40dffa8f2fc4bb37b08142a83974c48aa374cc Mon Sep 17 00:00:00 2001 From: amber Date: Tue, 30 Nov 2004 02:37:15 +0000 Subject: fixed another char crash git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/branches/stable@418 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog.txt | 1 + src/char_sql/char.c | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index d9d927469..5f3e76ac4 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,5 +1,6 @@ Date Added 11/29 + * Fixed crash in src/char_sql/char.c when setting chars offline [MouseJstr] * Added mapbug.txt which is displayed in map-server, displays the last bug or w/e fixed for the map-server [MC Cameri] -You may change it whenever you want diff --git a/src/char_sql/char.c b/src/char_sql/char.c index f944eeb58..c23c45bdb 100644 --- a/src/char_sql/char.c +++ b/src/char_sql/char.c @@ -201,10 +201,12 @@ void set_char_offline(int char_id, int account_id) { if (mysql_query(&mysql_handle, tmp_sql)) printf("DB server Error (set_char_offline)- %s\n", mysql_error(&mysql_handle)); + if (login_fd <= 0 || session[login_fd]->eof) + return; + WFIFOW(login_fd,0) = 0x272c; WFIFOL(login_fd,2) = account_id; WFIFOSET(login_fd,6); - } //----------------------------------------------------- @@ -2048,12 +2050,13 @@ int parse_char(int fd) { sd = session[fd]->session_data; - if(login_fd < 0) + if(login_fd < 0) session[fd]->eof = 1; if(session[fd]->eof) { if (fd == login_fd) login_fd = -1; - set_char_offline(99,sd->account_id); + if (sd != NULL) + set_char_offline(99,sd->account_id); close(fd); delete_session(fd); return 0; -- cgit v1.2.3-70-g09d2