mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-06-26 10:54:26 +02:00
JSON: Fix memory leak in parser
- Fix JSON root object leaking out by using delete. This is by no means a comprehensive fix since exceptions are involved in a lot of places, but it does fix the memory leak in all cases checked in Taskwarrior's test suite. - Going with a shared_ptr or unique_ptr here might be a better solution, but would involve more code changes.
This commit is contained in:
parent
5f8469269e
commit
2ad3713e8c
2 changed files with 6 additions and 0 deletions
|
@ -426,6 +426,8 @@ void Hooks::assertValidJSON (const std::vector <std::string>& input) const
|
|||
context.error (STRING_HOOK_ERROR_NOUUID);
|
||||
throw 0;
|
||||
}
|
||||
|
||||
delete root;
|
||||
}
|
||||
|
||||
catch (const std::string& e)
|
||||
|
@ -479,6 +481,8 @@ void Hooks::assertSameTask (const std::vector <std::string>& input, const Task&
|
|||
context.error (format (STRING_HOOK_ERROR_SAME2, uuid, json_uuid));
|
||||
throw 0;
|
||||
}
|
||||
|
||||
delete root_obj;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -706,6 +706,8 @@ void Task::parseJSON (const std::string& line)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
delete root;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue