diff options
author | Russell Belfer <rb@github.com> | 2013-09-05 12:01:17 -0700 |
---|---|---|
committer | Russell Belfer <rb@github.com> | 2013-09-05 12:01:17 -0700 |
commit | af22dabb4366f8b2dd4acd5725a25e88842d6938 (patch) | |
tree | 91221d88877c7ca73d0373f6d42def58f21397db /src | |
parent | c97d407d9cc54fc99af0a57e09e04e9e0bc68cb6 (diff) | |
download | libgit2-af22dabb4366f8b2dd4acd5725a25e88842d6938.tar.gz |
GIT_MODE_TYPE should exclude setgid bits
The GIT_MODE_TYPE macro was looking at all bits above the
permissions, but it should really just look at the top bits so
that it will give the right results for a setgid or setuid entry.
Since we're now using these macros in the tests, this was causing
a test failure on platforms that don't support setgid.
Diffstat (limited to 'src')
-rw-r--r-- | src/fileops.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/fileops.h b/src/fileops.h index 142eb99d2..f2144566d 100644 --- a/src/fileops.h +++ b/src/fileops.h @@ -228,7 +228,8 @@ extern git_off_t git_futils_filesize(git_file fd); #define GIT_PERMS_FOR_WRITE(MODE) (GIT_PERMS_EXECUTABLE(MODE) ? 0777 : 0666) #define GIT_MODE_PERMS_MASK 0777 -#define GIT_MODE_TYPE(MODE) ((MODE) & ~GIT_MODE_PERMS_MASK) +#define GIT_MODE_TYPE_MASK 0170000 +#define GIT_MODE_TYPE(MODE) ((MODE) & GIT_MODE_TYPE_MASK) #define GIT_MODE_ISBLOB(MODE) (GIT_MODE_TYPE(MODE) == GIT_MODE_TYPE(GIT_FILEMODE_BLOB)) /** |