]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libmount: fix table_init_listmount()
authorKarel Zak <kzak@redhat.com>
Tue, 18 Feb 2025 12:08:03 +0000 (13:08 +0100)
committerKarel Zak <kzak@redhat.com>
Tue, 18 Feb 2025 12:08:03 +0000 (13:08 +0100)
Addresses: 8ab1890df4481ddabfa34a8c7fbed09fdd818eba
Signed-off-by: Karel Zak <kzak@redhat.com>
libmount/src/tab_listmount.c

index 1ccdf2e77e7e32c80078e6052641d7f3be864e37..c9725a23c5ff0484570dd98c5251d0bf443ba886 100644 (file)
@@ -81,7 +81,7 @@ struct libmnt_listmnt {
 
 static int table_init_listmount(struct libmnt_table *tb, size_t stepsiz)
 {
-       struct libmnt_listmnt *ls = NULL;;
+       struct libmnt_listmnt *ls;
 
        if (!tb)
                return -EINVAL;
@@ -120,18 +120,18 @@ static int table_init_listmount(struct libmnt_table *tb, size_t stepsiz)
                ls->list = (uint64_t *) (x + sizeof(struct libmnt_listmnt));
                ls->stepsiz = stepsiz;
                ls->id = LSMT_ROOT;     /* default */
-       }
 
-       /* reuse old setting */
-       if (tb->lsmnt && ls != tb->lsmnt) {
-               ls->id = tb->lsmnt->id;
-               ls->ns = tb->lsmnt->ns;
-               ls->last = tb->lsmnt->last;
-               ls->enabled = tb->lsmnt->enabled;
-               ls->reverse = tb->lsmnt->reverse;
-               free(tb->lsmnt);
+               /* reuse old setting */
+               if (tb->lsmnt) {
+                       ls->id = tb->lsmnt->id;
+                       ls->ns = tb->lsmnt->ns;
+                       ls->last = tb->lsmnt->last;
+                       ls->enabled = tb->lsmnt->enabled;
+                       ls->reverse = tb->lsmnt->reverse;
 
-               tb->lsmnt = ls;
+                       free(tb->lsmnt);
+               }
+               tb->lsmnt = ls;;
        }
 
        DBG(TAB, ul_debugobj(tb, "listmount: init [step=%zu]", ls->stepsiz));