server: Delay destruction of file object in set_irp_result.

This commit is contained in:
Sebastian Lackner 2015-06-16 03:16:10 +02:00 committed by Alexandre Julliard
parent b4592cbc7c
commit ece08c10a1

View File

@ -288,7 +288,6 @@ static void set_irp_result( struct irp_call *irp, unsigned int status,
irp->out_size = min( irp->out_size, out_size ); irp->out_size = min( irp->out_size, out_size );
if (irp->out_size && !(irp->out_data = memdup( out_data, irp->out_size ))) if (irp->out_size && !(irp->out_data = memdup( out_data, irp->out_size )))
irp->out_size = 0; irp->out_size = 0;
release_object( file );
irp->file = NULL; irp->file = NULL;
if (irp->async) if (irp->async)
{ {
@ -306,6 +305,7 @@ static void set_irp_result( struct irp_call *irp, unsigned int status,
list_remove( &irp->dev_entry ); list_remove( &irp->dev_entry );
release_object( irp ); /* no longer on the device queue */ release_object( irp ); /* no longer on the device queue */
} }
release_object( file );
} }