Stebalien / tempfile

Temporary file library for rust
http://stebalien.com/projects/tempfile-rs
Apache License 2.0
1.2k stars 120 forks source link

feat: re-seed from system randomness on collision #314

Open Stebalien opened 1 week ago

Stebalien commented 1 week ago

Re-seed thread-local RNG from system randomness if we run into a temporary file-name collision. This should address the concerns about using a predictable RNG without hurting performance in the common case where nobody is trying to predict our filenames. I'm only re-seeding once because if we still fail to create a temporary file, the collision was likely due to too many temporary files instead of an attacker predicting our random temporary file names.

I've also reduced the number of tries from 2^31 to 2^16. If it takes more than that to create a temporary file, something else is wrong. Pausing for a long time is usually worse than just failing.

fixes #178