From 07f305cd59f9a79c8da9b69acce783ac9023caa7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Poussineau?= Date: Sat, 28 Jun 2025 13:38:55 +0200 Subject: [PATCH] [NDIS] NdisOpenFile: use local variables instead of using output variables --- drivers/network/ndis/ndis/misc.c | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/drivers/network/ndis/ndis/misc.c b/drivers/network/ndis/ndis/misc.c index 71e64c12cde..633ef79df88 100644 --- a/drivers/network/ndis/ndis/misc.c +++ b/drivers/network/ndis/ndis/misc.c @@ -228,10 +228,12 @@ NdisOpenFile( IN PNDIS_STRING FileName, IN NDIS_PHYSICAL_ADDRESS HighestAcceptableAddress) { + HANDLE NtFileHandle = NULL; NDIS_STRING FullFileName; OBJECT_ATTRIBUTES ObjectAttributes; PNDIS_HANDLE_OBJECT FileHandleObject = NULL; IO_STATUS_BLOCK IoStatusBlock; + NTSTATUS NtStatus; ASSERT_IRQL(PASSIVE_LEVEL); @@ -263,10 +265,10 @@ NdisOpenFile( memset ( FileHandleObject, 0, sizeof(NDIS_HANDLE_OBJECT) ); memmove ( FullFileName.Buffer, NDIS_FILE_FOLDER, FullFileName.Length ); - *Status = RtlAppendUnicodeStringToString ( &FullFileName, FileName ); - if ( !NT_SUCCESS(*Status) ) + NtStatus = RtlAppendUnicodeStringToString ( &FullFileName, FileName ); + if ( !NT_SUCCESS(NtStatus) ) { - NDIS_DbgPrint(MIN_TRACE, ("RtlAppendUnicodeStringToString failed (%x)\n", *Status)); + NDIS_DbgPrint(MIN_TRACE, ("RtlAppendUnicodeStringToString failed (%x)\n", NtStatus)); *Status = NDIS_STATUS_FAILURE; goto cleanup; } @@ -277,8 +279,8 @@ NdisOpenFile( NULL, NULL ); - *Status = ZwCreateFile ( - &FileHandleObject->FileHandle, + NtStatus = ZwCreateFile ( + &NtFileHandle, FILE_READ_DATA|SYNCHRONIZE, &ObjectAttributes, &IoStatusBlock, @@ -290,10 +292,10 @@ NdisOpenFile( 0, // PVOID EaBuffer 0 ); // ULONG EaLength - if ( !NT_SUCCESS(*Status) ) + if ( !NT_SUCCESS(NtStatus) ) { - NDIS_DbgPrint(MIN_TRACE, ("ZwCreateFile failed (%x) Name %wZ\n", *Status, FileName)); - *Status = NDIS_STATUS_FAILURE; + NDIS_DbgPrint(MIN_TRACE, ("ZwCreateFile failed (%x) Name %wZ\n", NtStatus, FileName)); + *Status = NDIS_STATUS_FILE_NOT_FOUND; } cleanup: @@ -304,16 +306,17 @@ cleanup: } if ( !NT_SUCCESS(*Status) ) { - if( FileHandleObject ) { - ExFreePool ( FileHandleObject ); - FileHandleObject = NULL; + if ( FileHandleObject ) + { + ExFreePool ( FileHandleObject ); } *FileHandle = NULL; } else + { + FileHandleObject->FileHandle = NtFileHandle; *FileHandle = NDIS_POBJECT_TO_HANDLE(FileHandleObject); - - return; + } } /*