server: Return error when hardware message is too large.
So that the client allocates a larger receive buffer when needed and not trigger the assert below when setting the reply message data. Signed-off-by: Rémi Bernon <rbernon@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
d416f1c4ce
commit
095204a9f3
|
@ -2145,6 +2145,14 @@ static int get_hardware_message( struct thread *thread, unsigned int hw_id, user
|
|||
clear_bits &= ~get_hardware_msg_bit( msg );
|
||||
continue;
|
||||
}
|
||||
|
||||
reply->total = msg->data_size;
|
||||
if (msg->data_size > get_reply_max_size())
|
||||
{
|
||||
set_error( STATUS_BUFFER_OVERFLOW );
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* now we can return it */
|
||||
if (!msg->unique_id) msg->unique_id = get_unique_id();
|
||||
reply->type = MSG_HARDWARE;
|
||||
|
|
Loading…
Reference in New Issue