From b2c5424af1e8ceec4722cb81f5d34f022e467ee2 Mon Sep 17 00:00:00 2001 From: Lemongrass3110 Date: Sun, 30 Jul 2017 16:40:48 +0200 Subject: [PATCH] Fixed some memleaks in skill_require_db Thanks to @Everade --- src/map/skill.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/map/skill.c b/src/map/skill.c index 9656e5788c..70d0d52317 100755 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -20879,6 +20879,11 @@ static bool skill_parse_row_requiredb(char* split[], int columns, int current) trim(split[11]); if (split[11][0] != '\0' || atoi(split[11])) { int require[MAX_SKILL_STATUS_REQUIRE]; + + if( skill_db[idx]->require.status_count > 0 ){ + aFree(skill_db[idx]->require.status); + } + if ((skill_db[idx]->require.status_count = skill_split_atoi2(split[11], require, ":", SC_STONE, ARRAYLENGTH(require)))) { CREATE(skill_db[idx]->require.status, enum sc_type, skill_db[idx]->require.status_count); for (i = 0; i < skill_db[idx]->require.status_count; i++){ @@ -20906,6 +20911,10 @@ static bool skill_parse_row_requiredb(char* split[], int columns, int current) if (split[33][0] != '\0' || atoi(split[33])) { int require[MAX_SKILL_EQUIP_REQUIRE]; + if( skill_db[idx]->require.eqItem_count > 0 ){ + aFree(skill_db[idx]->require.eqItem); + } + if ((skill_db[idx]->require.eqItem_count = skill_split_atoi2(split[33], require, ":", 500, ARRAYLENGTH(require)))) { CREATE(skill_db[idx]->require.eqItem, uint16, skill_db[idx]->require.eqItem_count); for (i = 0; i < skill_db[idx]->require.eqItem_count; i++){