projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'lsk/v3.10/topic/aosp' into linux-linaro-lsk-android
[firefly-linux-kernel-4.4.55.git]
/
drivers
/
tty
/
tty_audit.c
diff --git
a/drivers/tty/tty_audit.c
b/drivers/tty/tty_audit.c
index 755d418019c8850b2a3688d875fc042a9ceaad59..a4fdce74f883e4f5868f3efb975ec51347ef2c47 100644
(file)
--- a/
drivers/tty/tty_audit.c
+++ b/
drivers/tty/tty_audit.c
@@
-111,12
+111,9
@@
static void tty_audit_buf_push(struct tty_audit_buf *buf)
void tty_audit_exit(void)
{
struct tty_audit_buf *buf;
void tty_audit_exit(void)
{
struct tty_audit_buf *buf;
- unsigned long flags;
- spin_lock_irqsave(¤t->sighand->siglock, flags);
buf = current->signal->tty_audit_buf;
current->signal->tty_audit_buf = NULL;
buf = current->signal->tty_audit_buf;
current->signal->tty_audit_buf = NULL;
- spin_unlock_irqrestore(¤t->sighand->siglock, flags);
if (!buf)
return;
if (!buf)
return;
@@
-134,11
+131,8
@@
void tty_audit_exit(void)
*/
void tty_audit_fork(struct signal_struct *sig)
{
*/
void tty_audit_fork(struct signal_struct *sig)
{
- unsigned long flags;
-
- spin_lock_irqsave(¤t->sighand->siglock, flags);
sig->audit_tty = current->signal->audit_tty;
sig->audit_tty = current->signal->audit_tty;
- s
pin_unlock_irqrestore(¤t->sighand->siglock, flags)
;
+ s
ig->audit_tty_log_passwd = current->signal->audit_tty_log_passwd
;
}
/**
}
/**
@@
-275,10
+269,18
@@
void tty_audit_add_data(struct tty_struct *tty, unsigned char *data,
{
struct tty_audit_buf *buf;
int major, minor;
{
struct tty_audit_buf *buf;
int major, minor;
+ int audit_log_tty_passwd;
+ unsigned long flags;
if (unlikely(size == 0))
return;
if (unlikely(size == 0))
return;
+ spin_lock_irqsave(¤t->sighand->siglock, flags);
+ audit_log_tty_passwd = current->signal->audit_tty_log_passwd;
+ spin_unlock_irqrestore(¤t->sighand->siglock, flags);
+ if (!audit_log_tty_passwd && icanon && !L_ECHO(tty))
+ return;
+
if (tty->driver->type == TTY_DRIVER_TYPE_PTY
&& tty->driver->subtype == PTY_TYPE_MASTER)
return;
if (tty->driver->type == TTY_DRIVER_TYPE_PTY
&& tty->driver->subtype == PTY_TYPE_MASTER)
return;