From 0f332fc0393e5d89b0fb676c06890085fb5fae18 Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Wed, 1 Sep 2021 17:28:35 -0500 Subject: [PATCH] server: Allow calling async_terminate() with STATUS_PENDING. We still don't quite handle this completely correctly, but we should at least avoid crashing the server due to a failed assertion. Signed-off-by: Zebediah Figura Signed-off-by: Alexandre Julliard --- server/async.c | 2 -- server/device.c | 1 - 2 files changed, 3 deletions(-) diff --git a/server/async.c b/server/async.c index 1c3082083ed..b414604fcd4 100644 --- a/server/async.c +++ b/server/async.c @@ -156,8 +156,6 @@ static void async_destroy( struct object *obj ) /* notifies client thread of new status of its async request */ void async_terminate( struct async *async, unsigned int status ) { - assert( status != STATUS_PENDING ); - if (async->terminated) return; async->terminated = 1; diff --git a/server/device.c b/server/device.c index b669921a003..ef93a0a9024 100644 --- a/server/device.c +++ b/server/device.c @@ -386,7 +386,6 @@ static void set_irp_result( struct irp_call *irp, unsigned int status, if (!file) return; /* already finished */ - /* FIXME: handle the STATUS_PENDING case */ iosb->status = status; iosb->result = result; iosb->out_size = min( iosb->out_size, out_size );