tty: Fix race between tty release and echo_delayed_work

Fix potential race between tty release and echo_delayed_work,
which could result in use after free scenario for tty struct.

Change-Id: I1ea0f2a17d1131c686b3fe387a3576f3d037a3a5
Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
This commit is contained in:
Neeraj Upadhyay
2018-10-10 13:49:54 +05:30
committed by Gerrit - the friendly Code Review server
parent 01dafb7621
commit fda51f09a7

View File

@@ -1460,6 +1460,10 @@ static void release_one_tty(struct work_struct *work)
put_pid(tty->pgrp);
put_pid(tty->session);
#if defined(CONFIG_TTY_FLUSH_LOCAL_ECHO)
if (tty->echo_delayed_work.work.func)
cancel_delayed_work_sync(&tty->echo_delayed_work);
#endif
free_tty_struct(tty);
}