aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/staging/vt6655/device_main.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c
index bade552ba73..d8f7f4f7bac 100644
--- a/drivers/staging/vt6655/device_main.c
+++ b/drivers/staging/vt6655/device_main.c
@@ -3278,15 +3278,18 @@ int Config_FileOperation(PSDevice pDevice,BOOL fwrite,unsigned char *Parameter)
UCHAR tmpbuffer[20];
struct file *filp=NULL;
mm_segment_t old_fs = get_fs();
- int oldfsuid=0,oldfsgid=0;
+ //int oldfsuid=0,oldfsgid=0;
int result=0;
set_fs (KERNEL_DS);
-//Make sure a caller can read or write power as root
- oldfsuid=current->fsuid;
- oldfsgid=current->fsgid;
- current->fsuid = 0;
- current->fsgid = 0;
+
+ /* Can't do this anymore, so we rely on correct filesystem permissions:
+ //Make sure a caller can read or write power as root
+ oldfsuid=current->cred->fsuid;
+ oldfsgid=current->cred->fsgid;
+ current->cred->fsuid = 0;
+ current->cred->fsgid = 0;
+ */
//open file
filp = filp_open(config_path, O_RDWR, 0);
@@ -3344,8 +3347,11 @@ error1:
error2:
set_fs (old_fs);
- current->fsuid=oldfsuid;
- current->fsgid=oldfsgid;
+
+ /*
+ current->cred->fsuid=oldfsuid;
+ current->cred->fsgid=oldfsgid;
+ */
return result;
}