Re: [PATCH 3.11-stable] audit: fix endless wait in audit_log_start()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Sep 25, 2013 at 3:23 PM, Jonghwan Choi <jhbird.choi@xxxxxxxxxxx> wrote:
> This patch looks like it should be in the 3.11-stable tree, should we apply
> it?
>

Yep, all kernels starting from v3.8 are affected.
But I not sure that it could be applied as is, in older kernels
context is slightly different.

> ------------------
>
> From: "Konstantin Khlebnikov <khlebnikov@xxxxxxxxxx>"
>
> commit 8ac1c8d5deba65513b6a82c35e89e73996c8e0d6 upstream
>
> After commit 829199197a43 ("kernel/audit.c: avoid negative sleep
> durations") audit emitters will block forever if userspace daemon cannot
> handle backlog.
>
> After the timeout the waiting loop turns into busy loop and runs until
> daemon dies or returns back to work.  This is a minimal patch for that
> bug.
>
> Signed-off-by: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxx>
> Cc: Luiz Capitulino <lcapitulino@xxxxxxxxxx>
> Cc: Richard Guy Briggs <rgb@xxxxxxxxxx>
> Cc: Eric Paris <eparis@xxxxxxxxxx>
> Cc: Chuck Anderson <chuck.anderson@xxxxxxxxxx>
> Cc: Dan Duval <dan.duval@xxxxxxxxxx>
> Cc: Dave Kleikamp <dave.kleikamp@xxxxxxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Jonghwan Choi <jhbird.choi@xxxxxxxxxxx>
> ---
>  kernel/audit.c |    5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/audit.c b/kernel/audit.c
> index 91e53d0..7b0e23a 100644
> --- a/kernel/audit.c
> +++ b/kernel/audit.c
> @@ -1117,9 +1117,10 @@ struct audit_buffer *audit_log_start(struct
> audit_context *ctx, gfp_t gfp_mask,
>
>                         sleep_time = timeout_start + audit_backlog_wait_time
> -
>                                         jiffies;
> -                       if ((long)sleep_time > 0)
> +                       if ((long)sleep_time > 0) {
>                                 wait_for_auditd(sleep_time);
> -                       continue;
> +                               continue;
> +                       }
>                 }
>                 if (audit_rate_check() && printk_ratelimit())
>                         printk(KERN_WARNING
> --
> 1.7.9.5
>
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]