• Peter Hurley's avatar
    tty: audit: Defer audit buffer association · a75c9b09
    Peter Hurley authored
    The tty audit buffer used to audit/record tty input is allocated on
    the process's first call to tty_audit_add_data(), and not freed until
    the process exits. On each call to tty_audit_add_data(), the current
    tty is compared (by major:minor) with the last tty associated with
    the audit buffer, and if the tty has changed the existing data is
    logged to the audit log. The audit buffer is then re-associated with
    the new tty.
    
    Currently, the audit buffer is immediately associated with the tty;
    however, the association must be re-checked when the buffer is locked
    prior to copying the tty input. This extra step is always necessary,
    since a concurrent read of a different tty by another thread of the
    process may have used the buffer in between allocation and buffer
    lock.
    
    Rather than associate the audit buffer with the tty at allocation,
    leave the buffer initially un-associated (null dev_t); simply let the
    re-association check also perform the initial association.
    Signed-off-by: default avatarPeter Hurley <peter@hurleysoftware.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    a75c9b09
tty_audit.c 8.16 KB