From 03c90974a74fd31dc03af58e6aeedb0c9d1f3a35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marijan=20Petri=C4=8Devi=C4=87?= Date: Tue, 25 Jan 2022 11:14:57 +0100 Subject: [PATCH] add tmp_dir access check --- nixos/lib/test-driver/test_driver/driver.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/nixos/lib/test-driver/test_driver/driver.py b/nixos/lib/test-driver/test_driver/driver.py index 656e04143c17..10914a8c7aee 100644 --- a/nixos/lib/test-driver/test_driver/driver.py +++ b/nixos/lib/test-driver/test_driver/driver.py @@ -30,9 +30,22 @@ class Driver: self.tests = tests self.out_dir = out_dir - tmp_dir = Path(os.environ.get("TMPDIR", tempfile.gettempdir())) + tmp_dir = Path(tempfile.gettempdir()) tmp_dir.mkdir(mode=0o700, exist_ok=True) + if not tmp_dir.is_dir(): + raise NotADirectoryError( + "The directory defined by TMPDIR, TEMP, TMP or CWD: {0} is not a directory".format( + tmp_dir + ) + ) + if not os.access(tmp_dir, os.W_OK): + raise PermissionError( + "The directory defined by TMPDIR, TEMP, TMP or CWD: {0} is not writeable".format( + tmp_dir + ) + ) + with rootlog.nested("start all VLans"): self.vlans = [VLan(nr, tmp_dir) for nr in vlans]