diff mbox series

[iproute2] lib: ignore invalid mounts in cg_init_map

Message ID 20201008175927.47130-1-zeil@yandex-team.ru
State Accepted
Delegated to: stephen hemminger
Headers show
Series [iproute2] lib: ignore invalid mounts in cg_init_map | expand

Commit Message

Dmitry Yakunin Oct. 8, 2020, 5:59 p.m. UTC
In case of bad entries in /proc/mounts just skip cgroup cache initialization.
Cgroups in output will be shown as "unreachable:cgroup_id".

Fixes: d5e6ee0dac64 ("ss: introduce cgroup2 cache and helper functions")
Signed-off-by: Dmitry Yakunin <zeil@yandex-team.ru>
Reported-by: Donald Sharp <sharpd@nvidia.com>
---
 lib/cg_map.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

Comments

Donald Sharp Oct. 8, 2020, 6:17 p.m. UTC | #1
I've tested this patch and it works for me.

donald

On 10/8/20, 2:00 PM, "Dmitry Yakunin" <zeil@yandex-team.ru> wrote:

    External email: Use caution opening links or attachments


    In case of bad entries in /proc/mounts just skip cgroup cache initialization.
    Cgroups in output will be shown as "unreachable:cgroup_id".

    Fixes: d5e6ee0dac64 ("ss: introduce cgroup2 cache and helper functions")
    Signed-off-by: Dmitry Yakunin <zeil@yandex-team.ru>
    Reported-by: Donald Sharp <sharpd@nvidia.com>
    ---
     lib/cg_map.c | 5 ++---
     1 file changed, 2 insertions(+), 3 deletions(-)

    diff --git a/lib/cg_map.c b/lib/cg_map.c
    index 77f030e..39f244d 100644
    --- a/lib/cg_map.c
    +++ b/lib/cg_map.c
    @@ -96,11 +96,10 @@ static void cg_init_map(void)

            mnt = find_cgroup2_mount(false);
            if (!mnt)
    -               exit(1);
    +               return;

            mntlen = strlen(mnt);
    -       if (nftw(mnt, nftw_fn, 1024, FTW_MOUNT) < 0)
    -               exit(1);
    +       (void) nftw(mnt, nftw_fn, 1024, FTW_MOUNT);

            free(mnt);
     }
    --
    2.7.4
Stephen Hemminger Oct. 12, 2020, 6:03 a.m. UTC | #2
On Thu,  8 Oct 2020 20:59:27 +0300
Dmitry Yakunin <zeil@yandex-team.ru> wrote:

> In case of bad entries in /proc/mounts just skip cgroup cache initialization.
> Cgroups in output will be shown as "unreachable:cgroup_id".
> 
> Fixes: d5e6ee0dac64 ("ss: introduce cgroup2 cache and helper functions")
> Signed-off-by: Dmitry Yakunin <zeil@yandex-team.ru>
> Reported-by: Donald Sharp <sharpd@nvidia.com>

Applied with one suggestion.
This code has no comments so it is not obvious exactly what it is doing.
Some explanations would help the next person.
diff mbox series

Patch

diff --git a/lib/cg_map.c b/lib/cg_map.c
index 77f030e..39f244d 100644
--- a/lib/cg_map.c
+++ b/lib/cg_map.c
@@ -96,11 +96,10 @@  static void cg_init_map(void)
 
 	mnt = find_cgroup2_mount(false);
 	if (!mnt)
-		exit(1);
+		return;
 
 	mntlen = strlen(mnt);
-	if (nftw(mnt, nftw_fn, 1024, FTW_MOUNT) < 0)
-		exit(1);
+	(void) nftw(mnt, nftw_fn, 1024, FTW_MOUNT);
 
 	free(mnt);
 }