diff options
-rw-r--r-- | drivers/staging/vt6655/device_main.c | 22 |
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; } |