@ -1,7 +1,8 @@
From 52d5f7c3ba5c8e10b3a992304fd28cd4d18caee b Mon Sep 17 00:00:00 2001
From 10e62a964d465884b972571b258042493259b00 b Mon Sep 17 00:00:00 2001
From: Alexander Larsson <alexl@redhat.com>
From: Alexander Larsson <alexl@redhat.com>
Date: Tue, 18 Jun 2024 10:20:36 +0200
Date: Tue, 18 Jun 2024 10:20:36 +0200
Subject: [PATCH] Add --bind-fd and --ro-bind-fd to let you bind a O_PATH fd.
Subject: [PATCH] [0.4.0] Add --bind-fd and --ro-bind-fd to let you bind a
O_PATH fd.
This is useful for example if you for some reason don't have the real
This is useful for example if you for some reason don't have the real
path. It is also a way to make bind-mounts race-free (i.e. to have the
path. It is also a way to make bind-mounts race-free (i.e. to have the
@ -15,17 +16,17 @@ permitted, but at least we can delay resolving the fd to a path as much as
possible, and then validate after mount that we actually mounted the right
possible, and then validate after mount that we actually mounted the right
thing.
thing.
[@kolyshkin: backport commit a253257cd298892 to v0.4.0]
Signed-off-by: Alexander Larsson <alexl@redhat.com>
Signed-off-by: Alexander Larsson <alexl@redhat.com>
(cherry picked from commit a253257cd298892da43e15201d83f9a02c9b58b5)
Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
[kalev: Backport to 0.4.x]
Signed-off-by: Kalev Lember <klember@redhat.com>
---
---
bubblewrap.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++
bubblewrap.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++
tests/test-run.sh | 7 ++++++-
tests/test-run.sh | 5 +++++
2 files changed, 56 insertions(+), 1 deletion(- )
2 files changed, 55 insertions(+ )
diff --git a/bubblewrap.c b/bubblewrap.c
diff --git a/bubblewrap.c b/bubblewrap.c
index b3d52bc..38b3646 100644
index 8d0c5f7..209c1a5 100644
--- a/bubblewrap.c
--- a/bubblewrap.c
+++ b/bubblewrap.c
+++ b/bubblewrap.c
@@ -250,6 +250,8 @@ usage (int ecode, FILE *out)
@@ -250,6 +250,8 @@ usage (int ecode, FILE *out)
@ -37,7 +38,7 @@ index b3d52bc..38b3646 100644
" --remount-ro DEST Remount DEST as readonly; does not recursively remount\n"
" --remount-ro DEST Remount DEST as readonly; does not recursively remount\n"
" --exec-label LABEL Exec label for the sandbox\n"
" --exec-label LABEL Exec label for the sandbox\n"
" --file-label LABEL File label for temporary sandbox content\n"
" --file-label LABEL File label for temporary sandbox content\n"
@@ -11 11,6 +1113 ,30 @@ setup_newroot (bool unshare_pid,
@@ -11 06,6 +1108 ,30 @@ setup_newroot (bool unshare_pid,
(op->type == SETUP_RO_BIND_MOUNT ? BIND_READONLY : 0) |
(op->type == SETUP_RO_BIND_MOUNT ? BIND_READONLY : 0) |
(op->type == SETUP_DEV_BIND_MOUNT ? BIND_DEVICES : 0),
(op->type == SETUP_DEV_BIND_MOUNT ? BIND_DEVICES : 0),
source, dest);
source, dest);
@ -68,7 +69,7 @@ index b3d52bc..38b3646 100644
break;
break;
case SETUP_REMOUNT_RO_NO_RECURSIVE:
case SETUP_REMOUNT_RO_NO_RECURSIVE:
@@ -164 8,6 +1674 ,30 @@ parse_args_recurse (int *argcp,
@@ -164 3,6 +1669 ,30 @@ parse_args_recurse (int *argcp,
if (strcmp(arg, "--dev-bind-try") == 0)
if (strcmp(arg, "--dev-bind-try") == 0)
op->flags = ALLOW_NOTEXIST;
op->flags = ALLOW_NOTEXIST;
@ -100,19 +101,10 @@ index b3d52bc..38b3646 100644
argc -= 2;
argc -= 2;
}
}
diff --git a/tests/test-run.sh b/tests/test-run.sh
diff --git a/tests/test-run.sh b/tests/test-run.sh
index 702c480..ce1eaf 6 100755
index a01f41c..345db4 6 100755
--- a/tests/test-run.sh
--- a/tests/test-run.sh
+++ b/tests/test-run.sh
+++ b/tests/test-run.sh
@@ -80,7 +80,7 @@ if ! $RUN true; then
@@ -375,5 +375,10 @@ else
skip Seems like bwrap is not working at all. Maybe setuid is not working
fi
-echo "1..49"
+echo "1..50"
# Test help
${BWRAP} --help > help.txt
@@ -382,5 +382,10 @@ else
echo "ok - Test --pidns"
echo "ok - Test --pidns"
fi
fi