{"push_id":690156209,"size":1,"distinct_size":1,"ref":"refs/heads/fixasuser","head":"dd7e89a8e747e83d80e313eaccc84d351c208bc9","before":"e2a23a872c6e5981992dec329e610cadb4310720","commits":[{"sha":"dd7e89a8e747e83d80e313eaccc84d351c208bc9","author":{"email":"f09eaae3593d4e9e732cdbf62a73c189ff7949e6@coreos.com","name":"Vito Caputo"},"message":"authorized_keys_d: replace asUser() with granular CGO implementations\n\nSince runtime.LockOSThread() doesn't prevent the Go scheduler from cloning\nnew threads from the locked thread, we can't safely switch thread-specific\nproperties like euid/egid without risk of them leaking into unlocked threads.\n\nThis commit instead uses CGO to wrap the filesystem operations in threads\nwhere we can safely switch the euid/egid provided we don't call back into Go\nfrom CGO.\n\nThe created threads are also !CLONE_FS, so we can privately umask() the\ncreates, without influencing the rest of the go process.","distinct":true,"url":"https://api.github.com/repos/vcaputo/update-ssh-keys/commits/dd7e89a8e747e83d80e313eaccc84d351c208bc9"}]}