setgroups-return-errors-negative-20030515
authorChristopher Allen Wing <wingc@engin.umich.edu>
Thu, 15 May 2003 16:16:26 +0000 (16:16 +0000)
committerDerrick Brashear <shadow@dementia.org>
Thu, 15 May 2003 16:16:26 +0000 (16:16 +0000)
FIXES 1383

return errors negative as linux kernel needs

src/afs/LINUX/osi_groups.c

index 5f41883..7e32831 100644 (file)
@@ -137,7 +137,8 @@ asmlinkage long afs_xsetgroups(int gidsetsize, gid_t *grouplist)
     crfree(cr);
     unlock_kernel();
 
-    return code;
+    /* Linux syscall ABI returns errno as negative */
+    return (- code);
 }
 
 #if defined(AFS_LINUX24_ENV)
@@ -169,7 +170,8 @@ asmlinkage int afs_xsetgroups32(int gidsetsize, gid_t *grouplist)
     crfree(cr);
     unlock_kernel();
 
-    return code;
+    /* Linux syscall ABI returns errno as negative */
+    return (- code);
 }
 #endif
 
@@ -202,7 +204,8 @@ asmlinkage int afs32_xsetgroups(int gidsetsize, __kernel_gid_t32 *grouplist)
     crfree(cr);
     unlock_kernel();
 
-    return code;
+    /* Linux syscall ABI returns errno as negative */
+    return (- code);
 }
 #ifdef AFS_LINUX24_ENV
 /* Intercept the uid32 system call as used by 32bit programs. */
@@ -233,7 +236,8 @@ asmlinkage int afs32_xsetgroups32(int gidsetsize, __kernel_gid_t32 *grouplist)
     crfree(cr);
     unlock_kernel();
 
-    return code;
+    /* Linux syscall ABI returns errno as negative */
+    return (- code);
 }
 #endif
 #endif