On Friday, May 04, 2012 03:34:18 PM Marek Lindner wrote:
On Sunday, April 29, 2012 17:06:42 Sven Eckelmann wrote:
Signed-off-by: Sven Eckelmann sven@narfation.org
translation-table.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/translation-table.c b/translation-table.c index 88c62f1..c3b7773 100644 --- a/translation-table.c +++ b/translation-table.c @@ -1776,8 +1776,10 @@ int tt_init(struct bat_priv *bat_priv)
if (!tt_local_init(bat_priv))
return 0;
- if (!tt_global_init(bat_priv))
if (!tt_global_init(bat_priv)) {
tt_local_table_free(bat_priv);
return 0;
}
tt_start_timer(bat_priv);
Is this really necessary ? If tt_init() fails mesh_free() is called to free all tt buffers / lists / hashes. This is how the other *_init() function calls do it as well.
Ok, forgot about that. It is just became "normal" for me to assume that the local function is cleaning their stuff and does not "leak" in error situations.
Kind regards, Sven