aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/audit.c
diff options
context:
space:
mode:
authorDavid Woodhouse <dwmw2@shinybook.infradead.org>2005-05-10 13:56:08 -0400
committerDavid Woodhouse <dwmw2@shinybook.infradead.org>2005-05-10 13:56:08 -0400
commite3b926b4c1499ba7b1b9513aa6113944d572aba5 (patch)
tree6d4a230f3c02ebfd5073517fe8eb36f9a61dad22 /kernel/audit.c
parent8c5aa40c94ef8bb7f7da95ecd5942e2d20fc3c9d (diff)
AUDIT: pass size argument to audit_expand().
Let audit_expand() know how much it's expected to grow the buffer, in the case that we have that information to hand. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Diffstat (limited to 'kernel/audit.c')
-rw-r--r--kernel/audit.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/kernel/audit.c b/kernel/audit.c
index 2ddd1a2b66d0..1dd456c90ae5 100644
--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -687,10 +687,10 @@ struct audit_buffer *audit_log_start(struct audit_context *ctx)
687 * Returns 0 (no space) on failed expansion, or available space if 687 * Returns 0 (no space) on failed expansion, or available space if
688 * successful. 688 * successful.
689 */ 689 */
690static inline int audit_expand(struct audit_buffer *ab) 690static inline int audit_expand(struct audit_buffer *ab, int extra)
691{ 691{
692 struct sk_buff *skb = ab->skb; 692 struct sk_buff *skb = ab->skb;
693 int ret = pskb_expand_head(skb, skb_headroom(skb), AUDIT_BUFSIZ, 693 int ret = pskb_expand_head(skb, skb_headroom(skb), extra,
694 GFP_ATOMIC); 694 GFP_ATOMIC);
695 if (ret < 0) { 695 if (ret < 0) {
696 audit_log_lost("out of memory in audit_expand"); 696 audit_log_lost("out of memory in audit_expand");
@@ -716,7 +716,7 @@ static void audit_log_vformat(struct audit_buffer *ab, const char *fmt,
716 skb = ab->skb; 716 skb = ab->skb;
717 avail = skb_tailroom(skb); 717 avail = skb_tailroom(skb);
718 if (avail == 0) { 718 if (avail == 0) {
719 avail = audit_expand(ab); 719 avail = audit_expand(ab, AUDIT_BUFSIZ);
720 if (!avail) 720 if (!avail)
721 goto out; 721 goto out;
722 } 722 }
@@ -725,7 +725,7 @@ static void audit_log_vformat(struct audit_buffer *ab, const char *fmt,
725 /* The printk buffer is 1024 bytes long, so if we get 725 /* The printk buffer is 1024 bytes long, so if we get
726 * here and AUDIT_BUFSIZ is at least 1024, then we can 726 * here and AUDIT_BUFSIZ is at least 1024, then we can
727 * log everything that printk could have logged. */ 727 * log everything that printk could have logged. */
728 avail = audit_expand(ab); 728 avail = audit_expand(ab, 1+len-avail);
729 if (!avail) 729 if (!avail)
730 goto out; 730 goto out;
731 len = vsnprintf(skb->tail, avail, fmt, args); 731 len = vsnprintf(skb->tail, avail, fmt, args);