diff --git a/kernel/audit.c b/kernel/audit.c
index 060b554f481e430fd2154be52dc5a6181a5e9f33..187164572bd0be0b19c248e11c0f620b703b08ed 100644
--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -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. */
-		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);