*.eps *.go *.log *.mo *.pdf *.png *.tar.xz *.tmp *~ .#* \#*\# ,* /ABOUT-NLS /INSTALL /aclocal.m4 /autom4te.cache /build-aux/ar-lib /build-aux/compile /build-aux/config.guess /build-aux/config.rpath /build-aux/config.sub /build-aux/depcomp /build-aux/install-sh /build-aux/mdate-sh /build-aux/missing /build-aux/test-driver /build-aux/texinfo.tex /config.status /configure /doc/*.1 /doc/.dirstamp /doc/contributing.*.texi /doc/guix*.aux /doc/guix*.cp /doc/guix*.cps /doc/guix*.fn /doc/guix*.fns /doc/guix*.html /doc/guix*.info /doc/guix*.info-[0-9] /doc/guix*.ky /doc/guix*.pg /doc/guix*.toc /doc/guix*.t2p /doc/guix*.tp /doc/guix*.vr /doc/guix*.vrs /doc/guix.*.texi /doc/guix-cookbook.*.texi /doc/guix.aux /doc/guix.cp /doc/guix.cps /doc/guix.fn /doc/guix.fns /doc/guix.html /doc/guix.info /doc/guix.info-[0-9] /doc/guix.ky /doc/guix.pg /doc/guix.toc /doc/guix.t2p /doc/guix.tp /doc/guix.vr /doc/guix.vrs /doc/os-config-bare-bones.texi /doc/os-config-desktop.texi /doc/stamp-vti /doc/version.texi /doc/version-*.texi /etc/committer.scm /etc/teams.scm /etc/gnu-store.mount /etc/guix-daemon.cil /etc/guix-daemon.conf /etc/guix-daemon.service /etc/guix-publish.conf /etc/guix-publish.service /etc/guix-gc.service /etc/init.d/guix-daemon /etc/openrc/guix-daemon /guix-* /guix/config.scm /libformat.a /libstore.a /libutil.a /m4/* /m4/ChangeLog /m4/gettext.m4 /m4/iconv.m4 /m4/lib-ld.m4 /m4/lib-link.m4 /m4/lib-prefix.m4 /m4/nls.m4 /m4/po.m4 /m4/progtest.m4 /nix/config.h /nix/config.h.in /po/doc/*.mo /po/doc/*.pot /po/guix/*.gmo /po/guix/*.insert-header /po/guix/*.mo /po/guix/ChangeLog /po/guix/Makefile.in.in /po/guix/Makevars.template /po/guix/POTFILES /po/guix/Rules-quot /po/guix/boldquot.sed /po/guix/en@boldquot.* /po/guix/en@quot.* /po/guix/guix.pot /po/guix/insert-header.sin /po/guix/quot.sed /po/guix/remove-potcdate.sed /po/guix/remove-potcdate.sin /po/guix/stamp-po /po/packages/*.gmo /po/packages/*.insert-header /po/packages/*.mo /po/packages/ChangeLog /po/packages/Makefile.in.in /po/packages/Makevars.template /po/packages/POTFILES /po/packages/Rules-quot /po/packages/boldquot.sed /po/packages/en@boldquot.* /po/packages/en@quot.* /po/packages/guix-packages.pot /po/packages/insert-header.sin /po/packages/quot.sed /po/packages/remove-potcdate.sed /po/packages/remove-potcdate.sin /po/packages/stamp-po /pre-inst-env /release-* /scripts/guix /t-*/ /test-env /test-tmp /tests/*.trs /tests/services/*.trs GPATH GRTAGS GTAGS Makefile Makefile.in config.cache stamp-h[0-9] .am[0-9]*/ .dirstamp .deps tmp /doc/os-config-lightweight-desktop.texi /nix/scripts/download /.tarball-version /.version /doc/stamp-* /gnu/packages/bootstrap /gnu/packages/aux-files/guile-guile-launcher.o /guile .DS_Store .mumi/current-issueort writes....Fixes <https://issues.guix.gnu.org/70877>. * nix/libutil/util.cc (copyFile): Loop over ‘copy_file_range’ instead of throwing upon short write. Reported-by: Ricardo Wurmus <rekado@elephly.net> Change-Id: Id7b8a65ea59006c2d91bc23732309a68665b9ca0 Ludovic Courtès 2024-03-12daemon: Address shortcoming in previous security fix for CVE-2024-27297....This is a followup to 8f4ffb3fae133bb21d7991e97c2f19a7108b1143. Commit 8f4ffb3fae133bb21d7991e97c2f19a7108b1143 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 Ludovic Courtès 2024-03-11daemon: Protect against FD escape when building fixed-output derivations (CVE......This fixes a security issue (CVE-2024-27297) whereby a fixed-output derivation build process could open a writable file descriptor to its output, send it to some outside process for instance over an abstract AF_UNIX socket, which would then allow said process to modify the file in the store after it has been marked as “valid”. Vulnerability discovered by puck <https://github.com/puckipedia>. Nix security advisory: https://github.com/NixOS/nix/security/advisories/GHSA-2ffj-w4mj-pg37 Nix fix: https://github.com/NixOS/nix/commit/244f3eee0bbc7f11e9b383a15ed7368e2c4becc9 * nix/libutil/util.cc (readDirectory): Add variants that take a DIR* and a file descriptor. Rewrite the ‘Path’ variant accordingly. (copyFile, copyFileRecursively): New functions. * nix/libutil/util.hh (copyFileRecursively): New declaration. * nix/libstore/build.cc (DerivationGoal::buildDone): When ‘fixedOutput’ is true, call ‘copyFileRecursively’ followed by ‘rename’ on each output. Change-Id: I7952d41093eed26e123e38c14a4c1424be1ce1c4 Reported-by: Picnoir <picnoir@alternativebit.fr>, Théophane Hufschmitt <theophane.hufschmitt@tweag.io> Change-Id: Idb5f2757f35af86b032a9851cecb19b70227bd88 Ludovic Courtès 2023-01-09daemon: Improve error message for wrong hash sizes....* nix/libutil/hash.cc (parseHash): Show the hash algorithm name and expected size in the error message. * tests/derivations.scm ("fixed-output derivation, invalid hash size"): New test. Ludovic Courtès 2022-12-18daemon: Make "opening file" error messages distinguishable....* nix/libstore/build.cc (DerivationGoal::openLogFile): Customize "opening file" error message. * nix/libutil/hash.cc (hashFile): Likewise. * nix/libutil/util.cc (readFile, writeFile): Likewise. Ludovic Courtès 2021-11-19daemon: Micro-optimize 'deletePath'....'remove' calls 'unlink' first and falls back to 'rmdir' upon EISDIR. This change gets rid of the 'unlink' call for every directory being removed. * nix/libutil/util.cc (_deletePath): Call 'unlink' or 'rmdir' depending on 'st.st_mode', rather than call 'remove'. Ludovic Courtès