From: Daan De Meyer Date: Tue, 23 Apr 2024 08:19:38 +0000 (+0200) Subject: Avoid TOCTOU issue in start_journal_remote() X-Git-Tag: v23.1~98 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8cbde8a4ed20a078ad5c70fe38c0dd2294a68bb1;p=thirdparty%2Fmkosi.git Avoid TOCTOU issue in start_journal_remote() --- diff --git a/mkosi/qemu.py b/mkosi/qemu.py index f663917b8..516f21bc0 100644 --- a/mkosi/qemu.py +++ b/mkosi/qemu.py @@ -426,7 +426,9 @@ def start_journal_remote(config: Config, sockfd: int) -> Iterator[None]: d = config.forward_journal.parent if config.forward_journal.suffix == ".journal" else config.forward_journal if not d.exists(): - d.mkdir(parents=True) + # Pass exist_ok=True because multiple mkosi processes might be trying to create the parent directory at the + # same time. + d.mkdir(exist_ok=True, parents=True) # Make sure COW is disabled so systemd-journal-remote doesn't complain on btrfs filesystems. run(["chattr", "+C", d], check=False, stderr=subprocess.DEVNULL if not ARG_DEBUG.get() else None) INVOKING_USER.chown(d)