[driver] respect READONLY attribute

if file is created with READONLY attr then set mode to 444

if file is opened with READONLY attr but askes for WRITE access
return an error
This commit is contained in:
Olga Kornievskaia 2012-03-16 18:44:19 -04:00
parent 4418ba8b69
commit 439621a459

View file

@ -3407,6 +3407,13 @@ NTSTATUS nfs41_Create(
status = STATUS_OBJECT_NAME_INVALID;
goto out;
}
if (params.Disposition == FILE_OPEN &&
(params.FileAttributes & FILE_ATTRIBUTE_READONLY) &&
(params.DesiredAccess & (FILE_WRITE_DATA | FILE_APPEND_DATA))) {
status = STATUS_ACCESS_DENIED;
goto out;
}
#if defined(STORE_MOUNT_SEC_CONTEXT) && defined (USE_MOUNT_SEC_CONTEXT)
status = nfs41_UpcallCreate(NFS41_OPEN, &pVNetRootContext->mount_sec_ctx,
#else
@ -3441,8 +3448,9 @@ NTSTATUS nfs41_Create(
}
if (!entry->u.Open.mode)
entry->u.Open.mode = 0777;
if (params.FileAttributes & FILE_ATTRIBUTE_READONLY)
entry->u.Open.mode = 0444;
}
status = nfs41_UpcallWaitForReply(entry, pVNetRootContext->timeout);
#ifndef USE_MOUNT_SEC_CONTEXT
SeDeleteClientSecurity(&entry->sec_ctx);