diff options
author | Helmut Grohne <helmut@subdivi.de> | 2024-05-07 09:54:59 +0200 |
---|---|---|
committer | Helmut Grohne <helmut@subdivi.de> | 2024-05-07 09:54:59 +0200 |
commit | cd0ada6b19b03bda74fcb81316aa104e0d1bbac6 (patch) | |
tree | 667a3becf5286a7056f14bb38bb7604c1aab62ca | |
parent | dde202c733fe9a30932f56b2fcfc2dfafa5d7a63 (diff) | |
download | python-linuxnamespaces-cd0ada6b19b03bda74fcb81316aa104e0d1bbac6.tar.gz |
mount: allow data argument to be a list
-rwxr-xr-x | examples/chrootfuse.py | 8 | ||||
-rw-r--r-- | linuxnamespaces/syscalls.py | 6 |
2 files changed, 12 insertions, 2 deletions
diff --git a/examples/chrootfuse.py b/examples/chrootfuse.py index 55a394e..ef67e8a 100755 --- a/examples/chrootfuse.py +++ b/examples/chrootfuse.py @@ -71,7 +71,13 @@ def main() -> None: linuxnamespaces.MountFlags.RDONLY if readonly else linuxnamespaces.MountFlags.NONE, - "fd=%d,rootmode=040755,user_id=0,group_id=0,allow_other" % fusefd, + [ + "fd=%d" % fusefd, + "rootmode=040755", + "user_id=0", + "group_id=0", + "allow_other", + ], ) os.chdir("/mnt") linuxnamespaces.bind_mount("/proc", "proc", recursive=True) diff --git a/linuxnamespaces/syscalls.py b/linuxnamespaces/syscalls.py index 986238c..368f437 100644 --- a/linuxnamespaces/syscalls.py +++ b/linuxnamespaces/syscalls.py @@ -511,7 +511,7 @@ def mount( target: PathConvertible, filesystemtype: str | None, flags: MountFlags = MountFlags.NONE, - data: str | None = None, + data: str | list[str] | None = None, ) -> None: """Python wrapper for mount(2).""" if (flags & MountFlags.PROPAGATION_FLAGS).bit_count() > 1: @@ -523,6 +523,10 @@ def mount( ) ): raise ValueError("invalid flags for mount") + if isinstance(data, list): + if any("," in s for s in data): + raise ValueError("data elements must not contain a comma") + data = ",".join(data) call_libc( "mount", os.fsencode(source), |