AUDIT: Round up audit skb expansion to AUDIT_BUFSIZ.
authorDavid Woodhouse <dwmw2@shinybook.infradead.org>
Fri, 13 May 2005 15:35:19 +0000 (16:35 +0100)
committerDavid Woodhouse <dwmw2@shinybook.infradead.org>
Fri, 13 May 2005 15:35:19 +0000 (16:35 +0100)
Otherwise, we will be repeatedly reallocating, even if we're only
adding a few bytes at a time. Pointed out by Steve Grubb.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
kernel/audit.c

index 060b554f481e430fd2154be52dc5a6181a5e9f33..187164572bd0be0b19c248e11c0f620b703b08ed 100644 (file)
@@ -670,7 +670,7 @@ static void audit_log_vformat(struct audit_buffer *ab, const char *fmt,
                /* The printk buffer is 1024 bytes long, so if we get
                 * here and AUDIT_BUFSIZ is at least 1024, then we can
                 * log everything that printk could have logged. */
                /* The printk buffer is 1024 bytes long, so if we get
                 * here and AUDIT_BUFSIZ is at least 1024, then we can
                 * log everything that printk could have logged. */
-               avail = audit_expand(ab, 1+len-avail);
+               avail = audit_expand(ab, max_t(AUDIT_BUFSIZ, 1+len-avail));
                if (!avail)
                        goto out;
                len = vsnprintf(skb->tail, avail, fmt, args2);
                if (!avail)
                        goto out;
                len = vsnprintf(skb->tail, avail, fmt, args2);