[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH] Fix VS2013 SDV failures
Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx> --- src/xenvbd/buffer.c | 1 + src/xenvbd/driver.c | 4 +++- src/xenvbd/fdo.c | 5 ++--- src/xenvbd/pdo.c | 1 + src/xenvbd/registry.c | 38 ++++++++++++++++++++++++-------------- 5 files changed, 31 insertions(+), 18 deletions(-) diff --git a/src/xenvbd/buffer.c b/src/xenvbd/buffer.c index 029543e..6e35790 100644 --- a/src/xenvbd/buffer.c +++ b/src/xenvbd/buffer.c @@ -130,6 +130,7 @@ __IsOnList( ASSERT3U(KeGetCurrentIrql(), ==, DISPATCH_LEVEL); for (Entry = ListHead->Flink; Entry != ListHead; Entry = Entry->Flink) { + ASSERT3P(Entry, !=, NULL); if (Entry == ListItem) { Found = TRUE; break; diff --git a/src/xenvbd/driver.c b/src/xenvbd/driver.c index 08f9b12..f5f73ca 100644 --- a/src/xenvbd/driver.c +++ b/src/xenvbd/driver.c @@ -120,10 +120,12 @@ __DriverGetSystemStartParams( RtlInitUnicodeString(&Unicode, L"SystemStartOptions"); Status = ZwQueryValueKey(Key, &Unicode, KeyValuePartialInformation, NULL, 0, &Size); - if (Status != STATUS_BUFFER_TOO_SMALL) + if (Status != STATUS_BUFFER_TOO_SMALL && + Status != STATUS_BUFFER_OVERFLOW) goto fail2; Status = STATUS_NO_MEMORY; +#pragma prefast(suppress:6102) Value = (PKEY_VALUE_PARTIAL_INFORMATION)__AllocateNonPagedPoolWithTag(__FUNCTION__, __LINE__, Size, XENVBD_POOL_TAG); if (Value == NULL) goto fail3; diff --git a/src/xenvbd/fdo.c b/src/xenvbd/fdo.c index 60d8cd9..f240a97 100644 --- a/src/xenvbd/fdo.c +++ b/src/xenvbd/fdo.c @@ -1211,7 +1211,7 @@ FdoDevicePower( } __checkReturn -__drv_maxIRQL(DISPATCH_LEVEL) +__drv_maxIRQL(PASSIVE_LEVEL) static NTSTATUS __FdoInitialize( __in PXENVBD_FDO Fdo @@ -1796,10 +1796,9 @@ FdoMapDeviceObjectToPdo( Status = __FdoExtractTargetId(String, &TargetId); if (NT_SUCCESS(Status)) { __FdoSetDeviceObject(Fdo, TargetId, DeviceObject); + Verbose("0x%p --> Target %d (%ws)\n", DeviceObject, TargetId, String); } - Verbose("0x%p --> Target %d (%ws)\n", DeviceObject, TargetId, String); - // String is PagedPool, allocated by lower driver ASSERT3U(KeGetCurrentIrql(), <=, APC_LEVEL); ExFreePool(String); diff --git a/src/xenvbd/pdo.c b/src/xenvbd/pdo.c index 3f18621..76b0112 100644 --- a/src/xenvbd/pdo.c +++ b/src/xenvbd/pdo.c @@ -621,6 +621,7 @@ PdoDestroy( FALSE, NULL, WaitBlock); +#pragma prefast(suppress:6102) __PdoFree(WaitBlock); } diff --git a/src/xenvbd/registry.c b/src/xenvbd/registry.c index 2308908..883bcb4 100644 --- a/src/xenvbd/registry.c +++ b/src/xenvbd/registry.c @@ -171,16 +171,16 @@ RegistryOpenHardwareKey( goto fail1; Length = 0; - (VOID) ZwQueryKey(SubKey, - KeyNameInformation, - NULL, - 0, - &Length); - - status = STATUS_INVALID_PARAMETER; - if (Length == 0) + status = ZwQueryKey(SubKey, + KeyNameInformation, + NULL, + 0, + &Length); + if (status != STATUS_BUFFER_OVERFLOW && + status != STATUS_BUFFER_TOO_SMALL) goto fail2; - + +#pragma prefast(suppress:6102) Info = __RegistryAllocate(Length + sizeof (WCHAR)); status = STATUS_NO_MEMORY; @@ -365,9 +365,11 @@ RegistryEnumerateSubKeys( NULL, 0, &Size); - if (status != STATUS_BUFFER_TOO_SMALL) + if (status != STATUS_BUFFER_OVERFLOW && + status != STATUS_BUFFER_TOO_SMALL) goto fail1; +#pragma prefast(suppress:6102) Full = __RegistryAllocate(Size); status = STATUS_NO_MEMORY; @@ -466,9 +468,11 @@ RegistryEnumerateValues( NULL, 0, &Size); - if (status != STATUS_BUFFER_TOO_SMALL) + if (status != STATUS_BUFFER_OVERFLOW && + status != STATUS_BUFFER_TOO_SMALL) goto fail1; +#pragma prefast(suppress:6102) Full = __RegistryAllocate(Size); status = STATUS_NO_MEMORY; @@ -599,9 +603,11 @@ RegistryQueryDwordValue( NULL, 0, &Size); - if (status != STATUS_BUFFER_TOO_SMALL) + if (status != STATUS_BUFFER_OVERFLOW && + status != STATUS_BUFFER_TOO_SMALL) goto fail2; +#pragma prefast(suppress:6102) Partial = __RegistryAllocate(Size); status = STATUS_NO_MEMORY; @@ -824,9 +830,11 @@ RegistryQuerySzValue( NULL, 0, &Size); - if (status != STATUS_BUFFER_TOO_SMALL) + if (status != STATUS_BUFFER_OVERFLOW && + status != STATUS_BUFFER_TOO_SMALL) goto fail2; +#pragma prefast(suppress:6102) Value = __RegistryAllocate(Size); status = STATUS_NO_MEMORY; @@ -895,10 +903,12 @@ RegistryQueryKeyName( NULL, 0, &Size); - if (status != STATUS_BUFFER_TOO_SMALL) + if (status != STATUS_BUFFER_OVERFLOW && + status != STATUS_BUFFER_TOO_SMALL) goto fail1; // Name information is not intrinsically NULL terminated +#pragma prefast(suppress:6102) Value = __RegistryAllocate(Size + sizeof (WCHAR)); status = STATUS_NO_MEMORY; -- 2.1.1 _______________________________________________ win-pv-devel mailing list win-pv-devel@xxxxxxxxxxxxxxxxxxxx http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |