]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libsmartcols: make child-parent reference more robust [clang analyze]
authorKarel Zak <kzak@redhat.com>
Wed, 29 Jul 2015 12:44:27 +0000 (14:44 +0200)
committerKarel Zak <kzak@redhat.com>
Wed, 29 Jul 2015 12:44:27 +0000 (14:44 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
libsmartcols/src/line.c

index 0b770daf98e78a9cdbc58d48fe8a10f9bc48e89e..12826a96197c49506d0ffba7942631f19d6c12bb 100644 (file)
@@ -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;
 }