summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2010-08-27 17:33:30 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2010-08-27 17:33:30 +0000
commit6685b744d5acf586794ab820719a1a5a277579d2 (patch)
tree36487f964e201cfdd6ce617a9396ca5469f34010
parent18cf72767e91b71b9d4ebbce260d30458de67c43 (diff)
2010-08-27 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1692/filesystem * libcsupport/include/rtems/libio.h, libfs/src/imfs/imfs_eval.c: Fix implementation and use of rtems_libio_is_valid_perms().
-rw-r--r--cpukit/ChangeLog6
-rw-r--r--cpukit/libcsupport/include/rtems/libio.h3
-rw-r--r--cpukit/libfs/src/imfs/imfs_eval.c6
3 files changed, 9 insertions, 6 deletions
diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog
index 38c4c3389c..a4b6c4c5de 100644
--- a/cpukit/ChangeLog
+++ b/cpukit/ChangeLog
@@ -1,3 +1,9 @@
+2010-08-27 Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+ PR 1692/filesystem
+ * libcsupport/include/rtems/libio.h, libfs/src/imfs/imfs_eval.c: Fix
+ implementation and use of rtems_libio_is_valid_perms().
+
2010-06-21 Peter Dufault <dufault@hda.com>
PR 1570/cpukit
diff --git a/cpukit/libcsupport/include/rtems/libio.h b/cpukit/libcsupport/include/rtems/libio.h
index 9f36086b18..7b118a573d 100644
--- a/cpukit/libcsupport/include/rtems/libio.h
+++ b/cpukit/libcsupport/include/rtems/libio.h
@@ -529,8 +529,7 @@ static inline rtems_device_minor_number rtems_filesystem_dev_minor_t(
* Verifies that the permission flag is valid.
*/
#define rtems_libio_is_valid_perms( _perm ) \
- (~ ((~RTEMS_LIBIO_PERMS_RWX) & _perm ))
-
+ (((~RTEMS_LIBIO_PERMS_RWX) & _perm ) == 0)
/*
* Prototypes for filesystem
diff --git a/cpukit/libfs/src/imfs/imfs_eval.c b/cpukit/libfs/src/imfs/imfs_eval.c
index 3d8df0b2e0..ee5ddea520 100644
--- a/cpukit/libfs/src/imfs/imfs_eval.c
+++ b/cpukit/libfs/src/imfs/imfs_eval.c
@@ -79,10 +79,8 @@ int IMFS_evaluate_permission(
IMFS_jnode_t *jnode;
int flags_to_test;
- if ( !rtems_libio_is_valid_perms( flags ) ) {
- assert( 0 );
- rtems_set_errno_and_return_minus_one( EIO );
- }
+ if ( !rtems_libio_is_valid_perms( flags ) )
+ rtems_set_errno_and_return_minus_one( EPERM );
jnode = node->node_access;