From fdd68e25b5d7193bd93653afde60e1ebc07768ca Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Wed, 29 Jul 2015 14:44:27 +0200 Subject: [PATCH] libsmartcols: make child-parent reference more robust [clang analyze] Signed-off-by: Karel Zak --- libsmartcols/src/line.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/libsmartcols/src/line.c b/libsmartcols/src/line.c index 0b770daf9..12826a961 100644 --- a/libsmartcols/src/line.c +++ b/libsmartcols/src/line.c @@ -214,20 +214,19 @@ int scols_line_add_child(struct libscols_line *ln, struct libscols_line *child) if (!ln || !child) return -EINVAL; + DBG(LINE, ul_debugobj(ln, "add child %p", child)); + scols_ref_line(child); + scols_ref_line(ln); + /* unref old<->parent */ if (child->parent) scols_line_remove_child(child->parent, child); - DBG(LINE, ul_debugobj(ln, "add child %p", child)); - /* new reference from parent to child */ list_add_tail(&child->ln_children, &ln->ln_branch); - scols_ref_line(child); /* new reference from child to parent */ child->parent = ln; - scols_ref_line(ln); - return 0; }