bug fix in nfs41_FinalizeVNetRoot
when we didn't create a mount, we don't have a security context to destroy. in vnetroot creation, initialize session to invalid_handle. if we fail to mount, then before deleting security context in nfs41_FinalizeVNetRoot check that session is not invalid_handle.
This commit is contained in:
parent
8e0e2d2718
commit
39e90a7299
1 changed files with 5 additions and 1 deletions
|
|
@ -2739,6 +2739,8 @@ NTSTATUS nfs41_CreateVNetRoot(
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pVNetRootContext->session = INVALID_HANDLE_VALUE;
|
||||||
|
|
||||||
/* In order to cooperate with other network providers, we must
|
/* In order to cooperate with other network providers, we must
|
||||||
* only claim paths of the form '\\server\nfs4\path' */
|
* only claim paths of the form '\\server\nfs4\path' */
|
||||||
status = has_nfs_prefix(pSrvCall->pSrvCallName, pNetRoot->pNetRootName);
|
status = has_nfs_prefix(pSrvCall->pSrvCallName, pNetRoot->pNetRootName);
|
||||||
|
|
@ -3095,8 +3097,10 @@ NTSTATUS nfs41_FinalizeVNetRoot(
|
||||||
pVNetRoot->pNetRoot->Type != NET_ROOT_WILD)
|
pVNetRoot->pNetRoot->Type != NET_ROOT_WILD)
|
||||||
status = STATUS_NOT_SUPPORTED;
|
status = STATUS_NOT_SUPPORTED;
|
||||||
#ifdef STORE_MOUNT_SEC_CONTEXT
|
#ifdef STORE_MOUNT_SEC_CONTEXT
|
||||||
else
|
else if (pVNetRootContext->session != INVALID_HANDLE_VALUE) {
|
||||||
|
DbgP("nfs41_FinalizeVNetRoot: deleting security context\n");
|
||||||
SeDeleteClientSecurity(&pVNetRootContext->mount_sec_ctx);
|
SeDeleteClientSecurity(&pVNetRootContext->mount_sec_ctx);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
DbgEx();
|
DbgEx();
|
||||||
return status;
|
return status;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue