Cygwin: console: Do not unmap shared console memory belonging to ctty.
In the condition that console setup for CTTY and close run at the
sametime, accessing shared console memory which is already unmapped
may occur. With this patch, to avoid this race issue, shared console
memory which belongs to contorolling terminal (CTTY) is kept mapped
as before.
Addresses: https://cygwin.com/pipermail/cygwin/2024-February/255561.html
Fixes: 3721a756b0
("Cygwin: console: Make the console accessible from other terminals.")
Reported-by: Kate Deplaix <kit-ty-kate@outlook.com>
Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
This commit is contained in:
parent
ee97ae1d5f
commit
c77a5689f7
2 changed files with 12 additions and 3 deletions
|
@ -1926,9 +1926,11 @@ fhandler_console::close ()
|
|||
|| get_device () == (dev_t) myself->ctty))
|
||||
free_console ();
|
||||
|
||||
if (shared_console_info[unit])
|
||||
UnmapViewOfFile ((void *) shared_console_info[unit]);
|
||||
shared_console_info[unit] = NULL;
|
||||
if (shared_console_info[unit] && myself->ctty != tc ()->ntty)
|
||||
{
|
||||
UnmapViewOfFile ((void *) shared_console_info[unit]);
|
||||
shared_console_info[unit] = NULL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
7
winsup/cygwin/release/3.5.2
Normal file
7
winsup/cygwin/release/3.5.2
Normal file
|
@ -0,0 +1,7 @@
|
|||
Fixes:
|
||||
------
|
||||
|
||||
- Fix the problem that console setup accesses shared memory which
|
||||
is already unmapped due to race condition. To avoid this issue,
|
||||
shared console memory will be kept mapped if it belongs to CTTY.
|
||||
Addresses: https://cygwin.com/pipermail/cygwin/2024-February/255561.html
|
Loading…
Add table
Add a link
Reference in a new issue