diff options
-rw-r--r-- | Changelog-Trunk.txt | 2 | ||||
-rw-r--r-- | src/common/strlib.c | 5 | ||||
-rw-r--r-- | src/map/log.c | 2 |
3 files changed, 8 insertions, 1 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index b9efa7510..424496388 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -5,6 +5,8 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. EV GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS
+2006/03/26
+ * Fixed jstrescapecpy crashing when you pass a null string to parse. [Skotlex] 2006/03/25
* Fixed the map-server freeze/crash on Warp Portal. [Skotlex] * Fixed Grandcross/Granddarkness showing no skill animation. [Skotlex] diff --git a/src/common/strlib.c b/src/common/strlib.c index 12c34556f..361c693c1 100644 --- a/src/common/strlib.c +++ b/src/common/strlib.c @@ -48,6 +48,11 @@ char* jstrescapecpy (char* pt,char* spt) { //a escape character is found, the target's final length increases! [Skotlex]
int i =0, j=0;
+ if (!spt) { //Return an empty string [Skotlex]
+ pt[0] = '\0';
+ return &pt[0];
+ }
+
while (spt[i] != '\0') {
switch (spt[i]) {
case '\'':
diff --git a/src/map/log.c b/src/map/log.c index af621e425..2722153e7 100644 --- a/src/map/log.c +++ b/src/map/log.c @@ -718,7 +718,7 @@ int log_chat(char *type, int type_id, int src_charid, int src_accid, char *map, #ifndef TXT_ONLY
if(log_config.sql_logs > 0){
sprintf(tmp_sql, "INSERT DELAYED INTO `%s` (`time`, `type`, `type_id`, `src_charid`, `src_accountid`, `src_map`, `src_map_x`, `src_map_y`, `dst_charname`, `message`) VALUES (NOW(), '%s', '%d', '%d', '%d', '%s', '%d', '%d', '%s', '%s')",
- log_config.log_chat_db, type, type_id, src_charid, src_accid, map, x, y, jstrescapecpy(t_charname, (char *)dst_charname), jstrescapecpy(t_msg, (char *)message));
+ log_config.log_chat_db, type, type_id, src_charid, src_accid, map, x, y, jstrescapecpy(t_charname, dst_charname), jstrescapecpy(t_msg, message));
if(mysql_query(&logmysql_handle, tmp_sql)){
ShowSQL("DB error - %s\n",mysql_error(&logmysql_handle));
|