avoding TOCTOU bug