svn commit: r350282 - in releng: 11.2/sys/kern 11.3/sys/kern 12.0/sys/kern

Gordon Tetlow gordon at FreeBSD.org
Wed Jul 24 12:53:07 UTC 2019


Author: gordon
Date: Wed Jul 24 12:53:06 2019
New Revision: 350282
URL: https://svnweb.freebsd.org/changeset/base/350282

Log:
  Fix pts write-after-free.
  
  Approved by:	so
  Security:	FreeBSD-SA-19:13.pts
  Security:	CVE-2019-5606

Modified:
  releng/11.2/sys/kern/tty.c
  releng/11.3/sys/kern/tty.c
  releng/12.0/sys/kern/tty.c

Modified: releng/11.2/sys/kern/tty.c
==============================================================================
--- releng/11.2/sys/kern/tty.c	Wed Jul 24 12:51:52 2019	(r350281)
+++ releng/11.2/sys/kern/tty.c	Wed Jul 24 12:53:06 2019	(r350282)
@@ -230,9 +230,6 @@ ttydev_leave(struct tty *tp)
 
 	tp->t_flags |= TF_OPENCLOSE;
 
-	/* Stop asynchronous I/O. */
-	funsetown(&tp->t_sigio);
-
 	/* Remove console TTY. */
 	if (constty == tp)
 		constty_clear();
@@ -1122,6 +1119,9 @@ tty_rel_free(struct tty *tp)
 		tty_unlock(tp);
 		return;
 	}
+
+	/* Stop asynchronous I/O. */
+	funsetown(&tp->t_sigio);
 
 	/* TTY can be deallocated. */
 	dev = tp->t_dev;

Modified: releng/11.3/sys/kern/tty.c
==============================================================================
--- releng/11.3/sys/kern/tty.c	Wed Jul 24 12:51:52 2019	(r350281)
+++ releng/11.3/sys/kern/tty.c	Wed Jul 24 12:53:06 2019	(r350282)
@@ -230,9 +230,6 @@ ttydev_leave(struct tty *tp)
 
 	tp->t_flags |= TF_OPENCLOSE;
 
-	/* Stop asynchronous I/O. */
-	funsetown(&tp->t_sigio);
-
 	/* Remove console TTY. */
 	if (constty == tp)
 		constty_clear();
@@ -1122,6 +1119,12 @@ tty_rel_free(struct tty *tp)
 		tty_unlock(tp);
 		return;
 	}
+
+	/* Stop asynchronous I/O. */
+	funsetown(&tp->t_sigio);
+
+	/* Stop asynchronous I/O. */
+	funsetown(&tp->t_sigio);
 
 	/* TTY can be deallocated. */
 	dev = tp->t_dev;

Modified: releng/12.0/sys/kern/tty.c
==============================================================================
--- releng/12.0/sys/kern/tty.c	Wed Jul 24 12:51:52 2019	(r350281)
+++ releng/12.0/sys/kern/tty.c	Wed Jul 24 12:53:06 2019	(r350282)
@@ -231,9 +231,6 @@ ttydev_leave(struct tty *tp)
 
 	tp->t_flags |= TF_OPENCLOSE;
 
-	/* Stop asynchronous I/O. */
-	funsetown(&tp->t_sigio);
-
 	/* Remove console TTY. */
 	if (constty == tp)
 		constty_clear();
@@ -1123,6 +1120,9 @@ tty_rel_free(struct tty *tp)
 		tty_unlock(tp);
 		return;
 	}
+
+	/* Stop asynchronous I/O. */
+	funsetown(&tp->t_sigio);
 
 	/* TTY can be deallocated. */
 	dev = tp->t_dev;


More information about the svn-src-all mailing list