]> Zhao Yanbai Git Server - minix.git/commitdiff
Fixed a number of cases where a bits in an integer were tested
authorKees van Reeuwijk <reeuwijk@few.vu.nl>
Tue, 2 Mar 2010 12:55:39 +0000 (12:55 +0000)
committerKees van Reeuwijk <reeuwijk@few.vu.nl>
Tue, 2 Mar 2010 12:55:39 +0000 (12:55 +0000)
incorrectly, resulting in real (and nasty) bugs.

servers/is/dmp_rs.c
servers/pfs/open.c
servers/vfs/link.c

index eb1d1925fc3e943c05db4c6f68a58b2f740e2310..aa81fca05f3cd775238f7f53cf6f6c6fd13a72c0 100644 (file)
@@ -37,7 +37,7 @@ PUBLIC void rproc_dmp()
   for (i=prev_i; i<NR_SYS_PROCS; i++) {
        rp = &rproc[i];
        rpub = &rprocpub[i];
-       if (! rp->r_flags & RS_IN_USE) continue;
+       if (! (rp->r_flags & RS_IN_USE)) continue;
        if (++n > 22) break;
        printf("%13s %9d %5d %5s %3d/%1d %3u %8u %5dx %s",
                rpub->label, rpub->endpoint, rp->r_pid,
index 39026241c4beb600a20621667c747c5b37dd6934..59d2e1625981a7cc2c16690843591e062ea1badd 100644 (file)
@@ -26,7 +26,7 @@ PUBLIC int fs_newnode()
   /* Try to allocate the inode */
   if( (rip = alloc_inode(dev, bits) ) == NIL_INODE) return(err_code);
 
-  if (bits & S_IFMT != S_IFIFO) {
+  if ((bits & S_IFMT) != S_IFIFO) {
                r = EIO; /* We only support pipes */
   } else if ((get_block(dev, rip->i_num)) == NIL_BUF)
                r = EIO; 
index 4d44aea760cf63d3f4ee80c8821a3ab91fdad952..a74da279e0abfd571c27643816cdfb9454bb5af7 100644 (file)
@@ -94,7 +94,7 @@ PUBLIC int do_unlink()
   
   /* Also, if the sticky bit is set, only the owner of the file or a privileged
      user is allowed to unlink */
-  if (vldirp->v_mode & S_ISVTX == S_ISVTX) {
+  if ((vldirp->v_mode & S_ISVTX) == S_ISVTX) {
        /* Look up inode of file to unlink to retrieve owner */
        vp = advance(vldirp, PATH_RET_SYMLINK);
        if (vp != NIL_VNODE) {
@@ -136,7 +136,7 @@ PUBLIC int do_rename()
 
   /* If the sticky bit is set, only the owner of the file or a privileged
      user is allowed to rename */
-  if(old_dirp->v_mode & S_ISVTX == S_ISVTX) {
+  if((old_dirp->v_mode & S_ISVTX) == S_ISVTX) {
        /* Look up inode of file to unlink to retrieve owner */
        vp = advance(old_dirp, PATH_RET_SYMLINK);
        if (vp != NIL_VNODE) {