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>
This commit is contained in:
parent
8c5aa40c94
commit
e3b926b4c1
|
@ -687,10 +687,10 @@ struct audit_buffer *audit_log_start(struct audit_context *ctx)
|
||||||
* Returns 0 (no space) on failed expansion, or available space if
|
* Returns 0 (no space) on failed expansion, or available space if
|
||||||
* successful.
|
* successful.
|
||||||
*/
|
*/
|
||||||
static inline int audit_expand(struct audit_buffer *ab)
|
static inline int audit_expand(struct audit_buffer *ab, int extra)
|
||||||
{
|
{
|
||||||
struct sk_buff *skb = ab->skb;
|
struct sk_buff *skb = ab->skb;
|
||||||
int ret = pskb_expand_head(skb, skb_headroom(skb), AUDIT_BUFSIZ,
|
int ret = pskb_expand_head(skb, skb_headroom(skb), extra,
|
||||||
GFP_ATOMIC);
|
GFP_ATOMIC);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
audit_log_lost("out of memory in audit_expand");
|
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,
|
||||||
skb = ab->skb;
|
skb = ab->skb;
|
||||||
avail = skb_tailroom(skb);
|
avail = skb_tailroom(skb);
|
||||||
if (avail == 0) {
|
if (avail == 0) {
|
||||||
avail = audit_expand(ab);
|
avail = audit_expand(ab, AUDIT_BUFSIZ);
|
||||||
if (!avail)
|
if (!avail)
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
@ -725,7 +725,7 @@ static void audit_log_vformat(struct audit_buffer *ab, const char *fmt,
|
||||||
/* The printk buffer is 1024 bytes long, so if we get
|
/* The printk buffer is 1024 bytes long, so if we get
|
||||||
* here and AUDIT_BUFSIZ is at least 1024, then we can
|
* here and AUDIT_BUFSIZ is at least 1024, then we can
|
||||||
* log everything that printk could have logged. */
|
* log everything that printk could have logged. */
|
||||||
avail = audit_expand(ab);
|
avail = audit_expand(ab, 1+len-avail);
|
||||||
if (!avail)
|
if (!avail)
|
||||||
goto out;
|
goto out;
|
||||||
len = vsnprintf(skb->tail, avail, fmt, args);
|
len = vsnprintf(skb->tail, avail, fmt, args);
|
||||||
|
|
Loading…
Reference in New Issue