summary refs log tree commit diff
path: root/src/platform/nmp-netns.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2018-03-13 01:29:54 +0100
committerMichael Biebl <biebl@debian.org>2018-03-13 01:29:54 +0100
commit7e9ff09fcb2366b383b7ebbec80d2f6fff117290 (patch)
treee48e88b177182607488bcfd2d2645dbc77276866 /src/platform/nmp-netns.c
parent50f6b47074e01dffb8dc536c0a20961dcf28ae9b (diff)
New upstream version 1.10.6 upstream/1.10.6
Diffstat (limited to 'src/platform/nmp-netns.c')
-rw-r--r--src/platform/nmp-netns.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/platform/nmp-netns.c b/src/platform/nmp-netns.c
index bc305f01..d8561aef 100644
--- a/src/platform/nmp-netns.c
+++ b/src/platform/nmp-netns.c
@@ -475,6 +475,7 @@ nmp_netns_new (void)
 	NMPNetns *self;
 	int errsv;
 	GError *error = NULL;
+	unsigned long mountflags = 0;
 
 	_stack_ensure_init ();
 
@@ -503,7 +504,10 @@ nmp_netns_new (void)
 		goto err_out;
 	}
 
-	if (mount ("sysfs", "/sys", "sysfs", 0, NULL) != 0) {
+	if (access ("/sys", W_OK) == -1)
+		mountflags = MS_RDONLY;
+
+	if (mount ("sysfs", "/sys", "sysfs", mountflags, NULL) != 0) {
 		errsv = errno;
 		_LOGE (NULL, "failed mount /sys: %s", g_strerror (errsv));
 		goto err_out;