util: Make ns_enter() a void function and report setns() errors
ns_enter() returns an integer... but it's always zero. If we actually fail the function doesn't return. Therefore it makes more sense for this to be a function returning void, and we can remove the cases where we pointlessly checked its return value. In addition ns_enter() is usually called from an ephemeral thread created by NS_CALL(). That means that the exit(EXIT_FAILURE) there usually won't be reported (since NS_CALL() doesn't wait() for the thread). So, use die() instead to print out some information in the unlikely event that our setns() here does fail. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:

committed by
Stefano Brivio

parent
b15ce5b6ce
commit
6920adda0d
4
tap.c
4
tap.c
@@ -1182,9 +1182,9 @@ static int tap_ns_tun(void *arg)
|
||||
struct ctx *c = (struct ctx *)arg;
|
||||
|
||||
memcpy(ifr.ifr_name, c->pasta_ifn, IFNAMSIZ);
|
||||
ns_enter(c);
|
||||
|
||||
if (ns_enter(c) ||
|
||||
(tun_ns_fd = open("/dev/net/tun", flags)) < 0 ||
|
||||
if ((tun_ns_fd = open("/dev/net/tun", flags)) < 0 ||
|
||||
ioctl(tun_ns_fd, TUNSETIFF, &ifr) ||
|
||||
!(c->pasta_ifi = if_nametoindex(c->pasta_ifn))) {
|
||||
if (tun_ns_fd != -1)
|
||||
|
Reference in New Issue
Block a user