1. 28 1月, 2016 10 次提交
  2. 14 12月, 2015 3 次提交
    • P
      tty: Prevent ldisc drivers from re-using stale tty fields · dd42bf11
      Peter Hurley 提交于
      Line discipline drivers may mistakenly misuse ldisc-related fields
      when initializing. For example, a failure to initialize tty->receive_room
      in the N_GIGASET_M101 line discipline was recently found and fixed [1].
      Now, the N_X25 line discipline has been discovered accessing the previous
      line discipline's already-freed private data [2].
      
      Harden the ldisc interface against misuse by initializing revelant
      tty fields before instancing the new line discipline.
      
      [1]
          commit fd98e941
          Author: Tilman Schmidt <tilman@imap.cc>
          Date:   Tue Jul 14 00:37:13 2015 +0200
      
          isdn/gigaset: reset tty->receive_room when attaching ser_gigaset
      
      [2] Report from Sasha Levin <sasha.levin@oracle.com>
          [  634.336761] ==================================================================
          [  634.338226] BUG: KASAN: use-after-free in x25_asy_open_tty+0x13d/0x490 at addr ffff8800a743efd0
          [  634.339558] Read of size 4 by task syzkaller_execu/8981
          [  634.340359] =============================================================================
          [  634.341598] BUG kmalloc-512 (Not tainted): kasan: bad access detected
          ...
          [  634.405018] Call Trace:
          [  634.405277] dump_stack (lib/dump_stack.c:52)
          [  634.405775] print_trailer (mm/slub.c:655)
          [  634.406361] object_err (mm/slub.c:662)
          [  634.406824] kasan_report_error (mm/kasan/report.c:138 mm/kasan/report.c:236)
          [  634.409581] __asan_report_load4_noabort (mm/kasan/report.c:279)
          [  634.411355] x25_asy_open_tty (drivers/net/wan/x25_asy.c:559 (discriminator 1))
          [  634.413997] tty_ldisc_open.isra.2 (drivers/tty/tty_ldisc.c:447)
          [  634.414549] tty_set_ldisc (drivers/tty/tty_ldisc.c:567)
          [  634.415057] tty_ioctl (drivers/tty/tty_io.c:2646 drivers/tty/tty_io.c:2879)
          [  634.423524] do_vfs_ioctl (fs/ioctl.c:43 fs/ioctl.c:607)
          [  634.427491] SyS_ioctl (fs/ioctl.c:622 fs/ioctl.c:613)
          [  634.427945] entry_SYSCALL_64_fastpath (arch/x86/entry/entry_64.S:188)
      
      Cc: Tilman Schmidt <tilman@imap.cc>
      Cc: Sasha Levin <sasha.levin@oracle.com>
      Signed-off-by: NPeter Hurley <peter@hurleysoftware.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      dd42bf11
    • P
      tty: Simplify tty_set_ldisc() exit handling · 63d8cb3f
      Peter Hurley 提交于
      Perform common exit for both successful and error exit handling
      in tty_set_ldisc(). Fixes unlikely possibility of failing to restart
      input kworker when switching to the same line discipline (noop case).
      Signed-off-by: NPeter Hurley <peter@hurleysoftware.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      63d8cb3f
    • D
      tty/tty_ldisc: Deinline tty_ldisc_put, save 368 bytes · cb128f69
      Denys Vlasenko 提交于
      This function compiles to 72 bytes of machine code.
      Signed-off-by: NDenys Vlasenko <dvlasenk@redhat.com>
      CC: Jiri Slaby <jslaby@suse.com>
      CC: linux-serial@vger.kernel.org
      Reviewed-by: NPeter Hurley <peter@hurleysoftware.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      cb128f69
  3. 21 11月, 2015 1 次提交
  4. 18 10月, 2015 1 次提交
  5. 24 7月, 2015 2 次提交
  6. 07 5月, 2015 1 次提交
  7. 07 11月, 2014 1 次提交
  8. 06 11月, 2014 8 次提交
  9. 08 1月, 2014 1 次提交
  10. 24 7月, 2013 8 次提交
  11. 19 3月, 2013 4 次提交