diff --git a/namespaces.c b/namespaces.c index b6916c52b..ab55cdf83 100644 --- a/namespaces.c +++ b/namespaces.c @@ -269,6 +269,11 @@ static unsigned int __get_ns_id(int pid, struct ns_desc *nd, struct ns_id **ns) sprintf(ns_path, "ns/%s", nd->str); ret = readlinkat(proc_dir, ns_path, ns_id, sizeof(ns_id)); if (ret < 0) { + if (errno == ENOENT) { + /* The namespace is unsupported */ + kid = 0; + goto out; + } pr_perror("Can't readlink ns link"); return 0; } @@ -276,6 +281,7 @@ static unsigned int __get_ns_id(int pid, struct ns_desc *nd, struct ns_id **ns) kid = parse_ns_link(ns_id, ret, nd); BUG_ON(!kid); +out: return generate_ns_id(pid, kid, nd, ns); }