mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
daemon: Address shortcoming in previous security fix for CVE-2024-27297.
This is a followup to8f4ffb3fae
. Commit8f4ffb3fae
fell short in two ways: (1) it didn’t have any effet for fixed-output derivations performed in a chroot, which is the case for all of them except those using “builtin:download” and “builtin:git-download”, and (2) it did not preserve ownership when copying, leading to “suspicious ownership or permission […] rejecting this build output” errors. * nix/libstore/build.cc (DerivationGoal::buildDone): Account for ‘chrootRootDir’ when copying ‘drv.outputs’. * nix/libutil/util.cc (copyFileRecursively): Add ‘fchown’ and ‘fchownat’ calls to preserve file ownership; this is necessary for chrooted fixed-output derivation builds. * nix/libutil/util.hh: Update comment. Change-Id: Ib59f040e98fed59d1af81d724b874b592cbef156
This commit is contained in:
parent
fc1762fe38
commit
ff1251de0b
3 changed files with 14 additions and 8 deletions
|
@ -102,9 +102,10 @@ void deletePath(const Path & path);
|
|||
void deletePath(const Path & path, unsigned long long & bytesFreed,
|
||||
size_t linkThreshold = 1);
|
||||
|
||||
/* Copy SOURCE to DESTINATION, recursively. Throw if SOURCE contains a file
|
||||
that is not a regular file, symlink, or directory. When DELETESOURCE is
|
||||
true, delete source files once they have been copied. */
|
||||
/* Copy SOURCE to DESTINATION, recursively, preserving ownership. Throw if
|
||||
SOURCE contains a file that is not a regular file, symlink, or directory.
|
||||
When DELETESOURCE is true, delete source files once they have been
|
||||
copied. */
|
||||
void copyFileRecursively(const Path &source, const Path &destination,
|
||||
bool deleteSource = false);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue