mirror of
https://github.com/SoftEtherVPN/SoftEtherVPN.git
synced 2025-09-19 17:59:19 +03:00
v4.19-9599-beta
This commit is contained in:
@ -172,22 +172,49 @@ NTSTATUS DriverDispatch(DEVICE_OBJECT *device_object, IRP *irp)
|
||||
case IRP_MJ_WRITE: // Write
|
||||
if ((stack->Parameters.Write.Length % sizeof(WFP_LOCAL_IP)) == 0)
|
||||
{
|
||||
UINT size = MIN(WFP_MAX_LOCAL_IP_COUNT * sizeof(WFP_LOCAL_IP), stack->Parameters.Write.Length);
|
||||
UCHAR *copied_buf = Malloc(size);
|
||||
UCHAR *old_buf;
|
||||
Copy(copied_buf, buf, size);
|
||||
|
||||
SpinLock(wfp->LocalIPListLock);
|
||||
// Address check
|
||||
bool check_ok = true;
|
||||
__try
|
||||
{
|
||||
old_buf = wfp->LocalIPListData;
|
||||
wfp->LocalIPListData = copied_buf;
|
||||
wfp->LocalIPListSize = size;
|
||||
ProbeForRead(buf, stack->Parameters.Write.Length, 1);
|
||||
}
|
||||
SpinUnlock(wfp->LocalIPListLock);
|
||||
|
||||
if (old_buf != NULL)
|
||||
__except (EXCEPTION_EXECUTE_HANDLER)
|
||||
{
|
||||
Free(old_buf);
|
||||
check_ok = false;
|
||||
}
|
||||
|
||||
if (check_ok)
|
||||
{
|
||||
MDL *mdl = IoAllocateMdl(buf, stack->Parameters.Write.Length, false, false, NULL);
|
||||
UINT size = MIN(WFP_MAX_LOCAL_IP_COUNT * sizeof(WFP_LOCAL_IP), stack->Parameters.Write.Length);
|
||||
UCHAR *copied_buf = Malloc(size);
|
||||
UCHAR *old_buf;
|
||||
|
||||
if (mdl != NULL)
|
||||
{
|
||||
MmProbeAndLockPages(mdl, KernelMode, IoWriteAccess);
|
||||
}
|
||||
|
||||
Copy(copied_buf, buf, size);
|
||||
|
||||
SpinLock(wfp->LocalIPListLock);
|
||||
{
|
||||
old_buf = wfp->LocalIPListData;
|
||||
wfp->LocalIPListData = copied_buf;
|
||||
wfp->LocalIPListSize = size;
|
||||
}
|
||||
SpinUnlock(wfp->LocalIPListLock);
|
||||
|
||||
if (old_buf != NULL)
|
||||
{
|
||||
Free(old_buf);
|
||||
}
|
||||
|
||||
if (mdl != NULL)
|
||||
{
|
||||
MmUnlockPages(mdl);
|
||||
IoFreeMdl(mdl);
|
||||
}
|
||||
}
|
||||
}
|
||||
irp->IoStatus.Information = stack->Parameters.Write.Length;
|
||||
|
@ -79,7 +79,7 @@
|
||||
Name="VCLinkerTool"
|
||||
IgnoreImportLibrary="true"
|
||||
AdditionalOptions="/driver /subsystem:native,6.00 /FULLBUILD /align:0x80 /osversion:6.00 /STACK:0x40000,0x1000 /MERGE:_PAGE=PAGE /MERGE:_TEXT=.text /NODEFAULTLIB /stub:C:\WINDDK\7600.16385.0\lib\wlh\stub512.com /ALIGN:4096"
|
||||
AdditionalDependencies="wdm.lib ndis.lib ntoskrnl.lib fwpkclnt.lib "$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res""
|
||||
AdditionalDependencies="bufferoverflowK.lib wdm.lib ndis.lib wdmsec.lib ntoskrnl.lib fwpkclnt.lib "$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res""
|
||||
OutputFile="$(OutDir)\pxwfp_x86_unsigned.sys"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="C:\WINDDK\7600.16385.0\lib\wlh\i386"
|
||||
@ -121,7 +121,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:SignCode "$(TargetPath)" /DEST:"$(TargetDir)pxwfp_x86.sys" /COMMENT:"VPN Software" /KERNEL:yes /CERTID:0 /SHAMODE:0
$(SolutionDir)bin\BuildUtil.exe /CMD:SignCode "$(TargetPath)" /DEST:"$(TargetDir)pxwfp_x86_win10.sys" /COMMENT:"VPN Software" /KERNEL:yes /CERTID:0 /SHAMODE:2"
|
||||
CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:SignCode "$(TargetPath)" /DEST:"$(TargetDir)pxwfp_x86.sys" /COMMENT:"VPN Software" /KERNEL:yes /CERTID:0 /SHAMODE:0
$(SolutionDir)bin\BuildUtil.exe /CMD:SignCode "$(TargetPath)" /DEST:"$(TargetDir)pxwfp_x86_win10.sys" /COMMENT:"VPN Software" /KERNEL:yes /CERTID:0 /SHAMODE:2
"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
@ -183,7 +183,7 @@
|
||||
Name="VCLinkerTool"
|
||||
IgnoreImportLibrary="true"
|
||||
AdditionalOptions="/driver /subsystem:native /FULLBUILD /align:0x80 /osversion:6.00 /STACK:0x40000,0x1000 /MERGE:_PAGE=PAGE /MERGE:_TEXT=.text /NODEFAULTLIB /stub:C:\WINDDK\7600.16385.0\lib\wlh\stub512.com /ALIGN:4096"
|
||||
AdditionalDependencies="wdm.lib ndis.lib wdmsec.lib ntoskrnl.lib fwpkclnt.lib "$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res""
|
||||
AdditionalDependencies="bufferoverflowK.lib wdm.lib ndis.lib wdmsec.lib ntoskrnl.lib fwpkclnt.lib "$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res""
|
||||
OutputFile="$(OutDir)\pxwfp_x64_unsigned.sys"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="C:\WINDDK\7600.16385.0\lib\wlh\amd64"
|
||||
@ -225,7 +225,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:SignCode "$(TargetPath)" /DEST:"$(TargetDir)pxwfp_x64.sys" /COMMENT:"VPN Software" /KERNEL:yes /CERTID:0 /SHAMODE:0
$(SolutionDir)bin\BuildUtil.exe /CMD:SignCode "$(TargetPath)" /DEST:"$(TargetDir)pxwfp_x64_win10.sys" /COMMENT:"VPN Software" /KERNEL:yes /CERTID:0 /SHAMODE:2"
|
||||
CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:SignCode "$(TargetPath)" /DEST:"$(TargetDir)pxwfp_x64.sys" /COMMENT:"VPN Software" /KERNEL:yes /CERTID:0 /SHAMODE:0
$(SolutionDir)bin\BuildUtil.exe /CMD:SignCode "$(TargetPath)" /DEST:"$(TargetDir)pxwfp_x64_win10.sys" /COMMENT:"VPN Software" /KERNEL:yes /CERTID:0 /SHAMODE:2
"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
|
Reference in New Issue
Block a user