{"version":"2.1.234","anchor":"task-output-file-copies-refuse-suspicious-paths","canonical_anchor":"task-output-file-copies-refuse-suspicious-paths","heading":"Task output file copies refuse suspicious paths","tier":"internal","area":"Elsewhere","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.234\/e\/task-output-file-copies-refuse-suspicious-paths","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.234","markdown":"### Task output file copies refuse suspicious paths\n\nCopying a task's output file now refuses if the file changed or isn't an ordinary single-link file.\n\n**What**\n\nCopying a task's output file now verifies it is an ordinary file with a single link before and after opening it, and refuses if anything changed in between.\n\n**Details**\n\n- Checks for a regular file with link count 1, opens refusing symlinks and without blocking, then re-verifies device, inode and link count through the open handle.\n- Refuses on ELOOP, EISDIR, ENOTDIR, ENXIO and EOPNOTSUPP, or on any change between the first check and the open, with a logged error.\n\n**Evidence**\n\n`task output swap refused`\n\n- Area: Elsewhere\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 1\/5"}