X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=src%2Fnspawn%2Fnspawn.c;h=13c91c40bfcbb9eb915f19b51a2bc3338a974cb0;hb=b390f17892622b42b7b7866a7dddb4f02c9c566a;hp=27ea59215820699dd61676fc87630b4f04c27ab2;hpb=3267cb45e9458b473413a1322fc03f70da5d3645;p=thirdparty%2Fsystemd.git diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index 27ea5921582..13c91c40bfc 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -848,6 +848,10 @@ static int parse_argv(int argc, char *argv[]) { return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Network interface name not valid: %s", optarg); + r = test_network_interface_initialized(optarg); + if (r < 0) + return r; + if (strv_extend(&arg_network_interfaces, optarg) < 0) return log_oom(); @@ -861,6 +865,10 @@ static int parse_argv(int argc, char *argv[]) { return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "MACVLAN network interface name not valid: %s", optarg); + r = test_network_interface_initialized(optarg); + if (r < 0) + return r; + if (strv_extend(&arg_network_macvlan, optarg) < 0) return log_oom(); @@ -874,6 +882,10 @@ static int parse_argv(int argc, char *argv[]) { return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "IPVLAN network interface name not valid: %s", optarg); + r = test_network_interface_initialized(optarg); + if (r < 0) + return r; + if (strv_extend(&arg_network_ipvlan, optarg) < 0) return log_oom(); @@ -3252,6 +3264,7 @@ static int outer_child( int netns_fd) { _cleanup_close_ int fd = -1; + const char *p; pid_t pid; ssize_t l; int r; @@ -3447,7 +3460,9 @@ static int outer_child( return r; (void) dev_setup(directory, arg_uid_shift, arg_uid_shift); - (void) make_inaccessible_nodes(directory, arg_uid_shift, arg_uid_shift); + + p = prefix_roota(directory, "/run/systemd"); + (void) make_inaccessible_nodes(p, arg_uid_shift, arg_uid_shift); r = setup_pts(directory); if (r < 0)