diff options
author | Simon Rozman <simon@rozman.si> | 2019-07-31 13:51:35 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-08-02 09:43:32 +0000 |
commit | afdbc75bf9edfb7b292b5795b59553ecc0ef0926 (patch) | |
tree | 75b5790778d15a0ec1f473f15278d56e432d0869 | |
parent | Add SDVView target (diff) | |
download | wintun-afdbc75bf9edfb7b292b5795b59553ecc0ef0926.tar.xz wintun-afdbc75bf9edfb7b292b5795b59553ecc0ef0926.zip |
Resolve SDV reported "defect"
NdisMGetDeviceProperty() should always return non-NULL
FunctionalDeviceObject according to _Outptr_opt_. An explicit
FunctionalDeviceObject NULL check has been added to keep the SDV happy
and not calling our driver "defective".
Signed-off-by: Simon Rozman <simon@rozman.si>
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | wintun.c | 2 | ||||
-rw-r--r-- | wintun.proj | 2 |
3 files changed, 5 insertions, 1 deletions
@@ -51,6 +51,8 @@ msbuild wintun.proj [/t:<target>] - `SDV`: Runs Static Driver Verifier, which includes a clean driver build, only for AMD64 release configuration. + - `SDVView`: Views the results of the Static Driver Verifier. + - `DVL`: Runs the `SDV`, and creates a Driver Verification Log, only for AMD64 release configurations. - `MSM`: Builds Microsoft Installer Merge Modules in `<output folder>\wintun-<platform>-<version>.msm`. Requires WHQL signed driver. @@ -930,6 +930,8 @@ TunInitializeEx( Ctx->MiniportAdapterHandle = MiniportAdapterHandle; NdisMGetDeviceProperty(MiniportAdapterHandle, NULL, &Ctx->FunctionalDeviceObject, NULL, NULL, NULL); + if (Status = NDIS_STATUS_FAILURE, !Ctx->FunctionalDeviceObject) + goto cleanupFreeCtx; /* Reverse engineering indicates that we'd be better off calling * NdisWdfGetAdapterContextFromAdapterHandle(functional_device), * which points to our TUN_CTX object directly, but this isn't diff --git a/wintun.proj b/wintun.proj index 1370702..d5674e2 100644 --- a/wintun.proj +++ b/wintun.proj @@ -69,7 +69,7 @@ <Target Name="SDVView"> <MSBuild Projects="wintun.vcxproj" Targets="sdv" Properties="Inputs=/view;Configuration=Release;Platform=x64"/> </Target> - + <!-- Driver Verification Log --> |