mirror of
				https://github.com/winfsp/winfsp.git
				synced 2025-10-30 11:38:39 -05:00 
			
		
		
		
	sys: FspVolumeTransact: bug fix with bogus IRP's and DEBUGLOG's
This commit is contained in:
		| @@ -544,8 +544,12 @@ NTSTATUS FspVolumeTransact( | |||||||
|  |  | ||||||
|         ProcessIrp = FspIoqEndProcessingIrp(FsvolDeviceExtension->Ioq, (UINT_PTR)Response->Hint); |         ProcessIrp = FspIoqEndProcessingIrp(FsvolDeviceExtension->Ioq, (UINT_PTR)Response->Hint); | ||||||
|         if (0 == ProcessIrp) |         if (0 == ProcessIrp) | ||||||
|  |         { | ||||||
|             /* either IRP was canceled or a bogus Hint was provided */ |             /* either IRP was canceled or a bogus Hint was provided */ | ||||||
|  |             DEBUGLOG("BOGUS(Kind=%d, Hint=%p)", Response->Kind, (PVOID)Response->Hint); | ||||||
|  |             Response = NextResponse; | ||||||
|             continue; |             continue; | ||||||
|  |         } | ||||||
|  |  | ||||||
|         ASSERT((UINT_PTR)ProcessIrp == (UINT_PTR)Response->Hint); |         ASSERT((UINT_PTR)ProcessIrp == (UINT_PTR)Response->Hint); | ||||||
|         ASSERT(FspIrpRequest(ProcessIrp)->Hint == Response->Hint); |         ASSERT(FspIrpRequest(ProcessIrp)->Hint == Response->Hint); | ||||||
| @@ -725,8 +729,9 @@ NTSTATUS FspVolumeWork( | |||||||
|         FspIrpRequest(Irp) = 0; |         FspIrpRequest(Irp) = 0; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     DEBUGLOG("%s = %s", |     DEBUGLOG("%s(Irp=%p) = %s", | ||||||
|         IoctlCodeSym(BestEffort ? FSP_FSCTL_WORK_BEST_EFFORT : FSP_FSCTL_WORK), |         IoctlCodeSym(BestEffort ? FSP_FSCTL_WORK_BEST_EFFORT : FSP_FSCTL_WORK), | ||||||
|  |         Irp, /* referencing pointer value, which is safe despite FspIoqPostIrpEx above! */ | ||||||
|         NtStatusSym(Result)); |         NtStatusSym(Result)); | ||||||
|  |  | ||||||
|     return Result; |     return Result; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user