From bffdc36c3820100e806520d0c5608a7752324d4b Mon Sep 17 00:00:00 2001 From: Reid Spencer Date: Mon, 7 Aug 2006 05:20:05 +0000 Subject: [PATCH] Add a note about how the "isFile" check in Path::eraseFromDisk prevents the erasure of non-file paths like /dev/null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29539 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/System/Unix/Path.inc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/System/Unix/Path.inc b/lib/System/Unix/Path.inc index 83885c31b0d..f79b2b2064a 100644 --- a/lib/System/Unix/Path.inc +++ b/lib/System/Unix/Path.inc @@ -569,6 +569,11 @@ Path::eraseFromDisk(bool remove_contents, std::string *ErrStr) const { if (getFileStatus(Status, ErrStr)) return true; + // Note: this check catches strange situations. In all cases, LLVM should only + // be involved in the creation and deletion of regular files. This check + // ensures that what we're trying to erase is a regular file. It effectively + // prevents LLVM from erasing things like /dev/null, any block special file, + // or other things that aren't "regular" files. if (Status.isFile) { if (unlink(path.c_str()) != 0) return GetErrno(path + ": can't destroy file", ErrStr); -- 2.34.1