]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libmount: (tabdiff) use list_add_tail() in more robust way
authorKarel Zak <kzak@redhat.com>
Mon, 18 Feb 2019 11:35:09 +0000 (12:35 +0100)
committerKarel Zak <kzak@redhat.com>
Mon, 18 Feb 2019 11:35:51 +0000 (12:35 +0100)
Signed-off-by: Karel Zak <kzak@redhat.com>
libmount/src/context_mount.c
libmount/src/tab_diff.c

index 307da3c5ca53334dc193296b9ba68d067203ac72..58224088af1f6b3c41e2450c4cbfcdb9c93a17eb 100644 (file)
@@ -60,6 +60,9 @@ static int mnt_context_append_additional_mount(struct libmnt_context *cxt,
        assert(cxt);
        assert(ad);
 
+       if (!list_empty(&ad->mounts))
+               return -EINVAL;
+
        DBG(CXT, ul_debugobj(cxt,
                        "mount: add additional flag: 0x%08lx",
                        ad->mountflags));
index 70440bf8baec6ae9581bff62951976b9ab23d54f..fdb1ef5c2c3a135706c94cb7654feff658e0832c 100644 (file)
@@ -136,7 +136,7 @@ static int tabdiff_reset(struct libmnt_tabdiff *df)
                struct tabdiff_entry *de = list_entry(df->changes.next,
                                          struct tabdiff_entry, changes);
 
-               list_del(&de->changes);
+               list_del_init(&de->changes);
                list_add_tail(&de->changes, &df->unused);
 
                mnt_unref_fs(de->new_fs);