diff options
author | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2010-06-22 21:49:23 (GMT) |
---|---|---|
committer | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2010-06-22 21:49:23 (GMT) |
commit | 4ea01561e463750dc8ad95740d852d38752dc900 (patch) | |
tree | 62fae2438bbfa9e83617f24542548fdac683a2e7 | |
parent | 8b8f2c17ba69754b44f3d51dd161735c425de56d (diff) |
scripts/wrapper: fix wrong test when checking access to the reall tool
In C, the proper syntax for a bit-wise OR is a single '|', not two.
It worked so far because all was well:
- X_OK == 1
- R_OK||X_OK == 1
- the file we searched for had the x-bit set
-> access( file, R_OK||X_OK ) worked
- inicidentally, the file we searched for also had the r-bit set,
but we were not testing that in fact.
-rw-r--r-- | scripts/wrapper.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/scripts/wrapper.c b/scripts/wrapper.c index f836188..59630f6 100644 --- a/scripts/wrapper.c +++ b/scripts/wrapper.c @@ -71,7 +71,7 @@ int main( int argc, if( stat( testname, &st ) == 0 ) { /* OK, exists. Is it a regular file, or a * symlink, which the current user may execute? */ - if( S_ISREG( st.st_mode ) && ! access( testname, X_OK || R_OK ) ) { + if( S_ISREG( st.st_mode ) && ! access( testname, X_OK | R_OK ) ) { fullname = strdup( testname ); break; } |