mirror of
https://github.com/NixOS/nix.git
synced 2025-11-10 12:36:01 +01:00
Don't censor root info for trusted users
This commit is contained in:
parent
59700c0978
commit
774c4ba740
3 changed files with 9 additions and 2 deletions
|
|
@ -730,6 +730,7 @@ static void performOp(TunnelLogger * logger, ref<Store> store,
|
|||
options.action = (GCOptions::GCAction) readInt(conn.from);
|
||||
options.pathsToDelete = WorkerProto::Serialise<StorePathSet>::read(*store, rconn);
|
||||
conn.from >> options.ignoreLiveness >> options.maxFreed;
|
||||
options.censor = !trusted;
|
||||
// obsolete fields
|
||||
readInt(conn.from);
|
||||
readInt(conn.from);
|
||||
|
|
|
|||
|
|
@ -614,12 +614,12 @@ void LocalStore::collectGarbage(const GCOptions & options, GCResults & results)
|
|||
permanent roots cannot increase now. */
|
||||
printInfo("finding garbage collector roots...");
|
||||
if (!options.ignoreLiveness)
|
||||
findRootsNoTemp(roots, true);
|
||||
findRootsNoTemp(roots, options.censor);
|
||||
|
||||
/* Read the temporary roots created before we acquired the global
|
||||
GC root. Any new roots will be sent to our socket. */
|
||||
Roots tempRoots;
|
||||
findTempRoots(tempRoots, true);
|
||||
findTempRoots(tempRoots, options.censor);
|
||||
for (auto & root : tempRoots)
|
||||
_shared.lock()->tempRoots.insert(std::string(root.first.hashPart()));
|
||||
|
||||
|
|
|
|||
|
|
@ -53,6 +53,12 @@ struct GCOptions
|
|||
* Stop after at least `maxFreed` bytes have been freed.
|
||||
*/
|
||||
uint64_t maxFreed{std::numeric_limits<uint64_t>::max()};
|
||||
|
||||
/**
|
||||
* Whether to hide potentially sensitive information about GC
|
||||
* roots (such as PIDs).
|
||||
*/
|
||||
bool censor = false;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue