forked from OSchip/llvm-project
Added a description of the algorithm.
Return failure if the chmod() fails. llvm-svn: 8326
This commit is contained in:
parent
06327da723
commit
44375ca7d6
|
@ -98,12 +98,14 @@ std::string getUniqueFilename(const std::string &FilenameBase) {
|
||||||
///
|
///
|
||||||
/// Description:
|
/// Description:
|
||||||
/// This method makes the specified filename executable by giving it
|
/// This method makes the specified filename executable by giving it
|
||||||
/// execute permission.
|
/// execute permission. It respects the umask value of the process, and it
|
||||||
|
/// does not enable any unnecessary access bits.
|
||||||
///
|
///
|
||||||
/// For the UNIX version of this method, we turn on all of the read and
|
/// Algorithm:
|
||||||
/// execute bits and then turn off anything specified in the umask. This
|
/// o Get file's current permissions.
|
||||||
/// should help ensure that access to the file remains at the level that
|
/// o Get the process's current umask.
|
||||||
/// the user desires.
|
/// o Take the set of all execute bits and disable those found in the umask.
|
||||||
|
/// o Add the remaining permissions to the file's permissions.
|
||||||
///
|
///
|
||||||
bool
|
bool
|
||||||
MakeFileExecutable (const std::string & Filename)
|
MakeFileExecutable (const std::string & Filename)
|
||||||
|
@ -134,8 +136,13 @@ MakeFileExecutable (const std::string & Filename)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make the script executable...
|
//
|
||||||
chmod(Filename.c_str(), (fstat.st_mode | (0111 & ~mask)));
|
// Make the file executable...
|
||||||
|
//
|
||||||
|
if ((chmod(Filename.c_str(), (fstat.st_mode | (0111 & ~mask)))) == -1)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,12 +98,14 @@ std::string getUniqueFilename(const std::string &FilenameBase) {
|
||||||
///
|
///
|
||||||
/// Description:
|
/// Description:
|
||||||
/// This method makes the specified filename executable by giving it
|
/// This method makes the specified filename executable by giving it
|
||||||
/// execute permission.
|
/// execute permission. It respects the umask value of the process, and it
|
||||||
|
/// does not enable any unnecessary access bits.
|
||||||
///
|
///
|
||||||
/// For the UNIX version of this method, we turn on all of the read and
|
/// Algorithm:
|
||||||
/// execute bits and then turn off anything specified in the umask. This
|
/// o Get file's current permissions.
|
||||||
/// should help ensure that access to the file remains at the level that
|
/// o Get the process's current umask.
|
||||||
/// the user desires.
|
/// o Take the set of all execute bits and disable those found in the umask.
|
||||||
|
/// o Add the remaining permissions to the file's permissions.
|
||||||
///
|
///
|
||||||
bool
|
bool
|
||||||
MakeFileExecutable (const std::string & Filename)
|
MakeFileExecutable (const std::string & Filename)
|
||||||
|
@ -134,8 +136,13 @@ MakeFileExecutable (const std::string & Filename)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make the script executable...
|
//
|
||||||
chmod(Filename.c_str(), (fstat.st_mode | (0111 & ~mask)));
|
// Make the file executable...
|
||||||
|
//
|
||||||
|
if ((chmod(Filename.c_str(), (fstat.st_mode | (0111 & ~mask)))) == -1)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue