From 4ea01561e463750dc8ad95740d852d38752dc900 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Tue, 22 Jun 2010 23:49:23 +0200 Subject: 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. --- scripts/wrapper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'scripts/wrapper.c') diff --git a/scripts/wrapper.c b/scripts/wrapper.c index f8361883..59630f65 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; } -- cgit v1.2.3