From 687b3dc25c4dd0efefcc53c8c07fa52a833b1a76 Mon Sep 17 00:00:00 2001 From: Eric Pouech Date: Thu, 16 Sep 2010 21:05:26 +0200 Subject: [PATCH] server: Ensure we set proper errors when getting a NULL fd out of a handle. --- server/console.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/server/console.c b/server/console.c index 6616bd2d3b0..957e35f8eef 100644 --- a/server/console.c +++ b/server/console.c @@ -193,7 +193,10 @@ static struct fd *console_input_get_fd( struct object* obj ) { struct console_input *console_input = (struct console_input*)obj; assert( obj->ops == &console_input_ops ); - return console_input->fd ? (struct fd*)grab_object( console_input->fd ) : NULL; + if (console_input->fd) + return (struct fd*)grab_object( console_input->fd ); + set_error( STATUS_OBJECT_TYPE_MISMATCH ); + return NULL; } static enum server_fd_type console_get_fd_type( struct fd *fd ) @@ -1144,7 +1147,10 @@ static struct fd *screen_buffer_get_fd( struct object *obj ) { struct screen_buffer *screen_buffer = (struct screen_buffer*)obj; assert( obj->ops == &screen_buffer_ops ); - return screen_buffer->fd ? (struct fd*)grab_object( screen_buffer->fd ) : NULL; + if (screen_buffer->fd) + return (struct fd*)grab_object( screen_buffer->fd ); + set_error( STATUS_OBJECT_TYPE_MISMATCH ); + return NULL; } /* write data into a screen buffer */