Commit 1cb09660 authored by Alexandre Julliard's avatar Alexandre Julliard

server: Fix a couple of leaks in the new console code.

parent e78c2117
...@@ -381,7 +381,11 @@ static struct screen_buffer *create_console_output( struct console_input *consol ...@@ -381,7 +381,11 @@ static struct screen_buffer *create_console_output( struct console_input *consol
struct screen_buffer *screen_buffer; struct screen_buffer *screen_buffer;
int i; int i;
if (!(screen_buffer = alloc_object( &screen_buffer_ops ))) return NULL; if (!(screen_buffer = alloc_object( &screen_buffer_ops )))
{
if (fd != -1) close( fd );
return NULL;
}
screen_buffer->mode = ENABLE_PROCESSED_OUTPUT | ENABLE_WRAP_AT_EOL_OUTPUT; screen_buffer->mode = ENABLE_PROCESSED_OUTPUT | ENABLE_WRAP_AT_EOL_OUTPUT;
screen_buffer->input = console_input; screen_buffer->input = console_input;
screen_buffer->cursor_size = 100; screen_buffer->cursor_size = 100;
...@@ -1438,7 +1442,7 @@ DECL_HANDLER(alloc_console) ...@@ -1438,7 +1442,7 @@ DECL_HANDLER(alloc_console)
} }
close_handle( current->process, in ); close_handle( current->process, in );
} }
free_console( process ); release_object( console );
} }
the_end: the_end:
release_object( process ); release_object( process );
...@@ -1601,6 +1605,7 @@ DECL_HANDLER(create_console_output) ...@@ -1601,6 +1605,7 @@ DECL_HANDLER(create_console_output)
if (console_input_is_bare( console ) ^ (fd != -1)) if (console_input_is_bare( console ) ^ (fd != -1))
{ {
close( fd ); close( fd );
release_object( console );
set_error( STATUS_INVALID_HANDLE ); set_error( STATUS_INVALID_HANDLE );
return; return;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment