diff options
author | Simon Rozman <simon@rozman.si> | 2021-04-20 10:53:17 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2021-05-10 11:24:44 +0200 |
commit | 71e1ab6940432c9bfd0a238dc02144e8bfad52a7 (patch) | |
tree | 25a261fc27eb04184c87e10c46993756c64488f5 /driver | |
parent | driver: cleanup unused DBG define (diff) | |
download | wintun-71e1ab6940432c9bfd0a238dc02144e8bfad52a7.tar.xz wintun-71e1ab6940432c9bfd0a238dc02144e8bfad52a7.zip |
driver: fix memory leak on pre-Windows 7
Should NDIS version check fail the DriverEntry() bailed out without
releasing the TunDispatchSecurityDescriptor.
Signed-off-by: Simon Rozman <simon@rozman.si>
Diffstat (limited to '')
-rw-r--r-- | driver/wintun.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/driver/wintun.c b/driver/wintun.c index 931b7e8..6366ebd 100644 --- a/driver/wintun.c +++ b/driver/wintun.c @@ -1457,15 +1457,14 @@ DriverEntry(DRIVER_OBJECT *DriverObject, UNICODE_STRING *RegistryPath) { NTSTATUS Status; - if (!NT_SUCCESS(Status = TunInitializeDispatchSecurityDescriptor())) - return Status; - NdisVersion = NdisGetVersion(); if (NdisVersion < NDIS_MINIPORT_VERSION_MIN) return NDIS_STATUS_UNSUPPORTED_REVISION; if (NdisVersion > NDIS_MINIPORT_VERSION_MAX) NdisVersion = NDIS_MINIPORT_VERSION_MAX; + if (!NT_SUCCESS(Status = TunInitializeDispatchSecurityDescriptor())) + return Status; ExInitializeResourceLite(&TunDispatchCtxGuard); ExInitializeResourceLite(&TunDispatchDeviceListLock); |